0

スプリットストリングに問題があります。

私の文字列:

"SG_ PJB_ : 1|10@0+ (0.25,-60) [-60|195.75] "Degrees Celcius"  PCM,TCM,AFCM";

私はを頂きたい:

SG_
PJB_ 
1
10
0+
0.25
-60
-60
195.75
Degrees Celcius
PCM
TCM
AFCM

私が試した私のコード:

string s = "SG_ PJB_ : 1|10@0+ (0.25,-60) [-60|195.75] \"Degrees Celcius\"  PCM,TCM,AFCM";
string[] res = s.Split(new char[] { ' ', ',', ':', '|', '@', '(', ')', '[', ']', ';' }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < res.Length; i++)
{
   // Console.WriteLine("           ");
    Console.WriteLine("{0}", res[i]);
}
Console.ReadKey();

しかし、「Degrees Celcius」を 2 つの配列に分割しました。私は何をすべきか?

4

1 に答える 1

1

次のように使用します。

var result = input.Split(new[] { '"' }).SelectMany((s, i) =>
  {
      if (i%2 == 1) return new[] {s};
      return s.Split(new[] { ' ', ',', ':', '|', '@', '(', ')', '[', ']', ';' },
                               StringSplitOptions.RemoveEmptyEntries);
  }).ToList();
于 2012-10-12T10:36:16.137 に答える