0

C# を使用して文字列をカットするテストを行っていますが、結果が正しく得られません。まだ全文のexactStringが表示されています。

String exactString = ABC@@^^@@DEF
char[] Delimiter = { '@', '@', '^', '^', '@', '@' };
string getText1 = exactString.TrimEnd(Delimiter);
string getText2 = exactString.TrimStart(Delimiter);
MessageBox.Show(getText1);
MessageBox.Show(getText2);

出力:

ABC@@^^@@DEFgetText1 と getText2 の両方。

正しい OUTPUT は、getText1 の場合は ABC、getText2 の場合は DEF である必要があります。

どうすれば修正できますか?ありがとう。

4

3 に答える 3

7

文字列をトリミングするのではなく、分割する必要があります。したがって、使用する正しい方法は次のとおりです。String.Split

String exactString = "ABC@@^^@@DEF";
var result = exactString.Split(new string[] {"@@^^@@"}, StringSplitOptions.None);
Console.WriteLine(result[0]);  // outputs ABC
Console.WriteLine(result[1]);  // outputs DEF
于 2012-05-07T09:36:18.177 に答える
1

String.Split メソッドを使用できます

String exactString = "ABC@@^^@@DEF";
string[] splits = exactString.Split(new string[]{"@@^^@@"}, StringSplitOptions.None);
string getText1 = splits[0];
string getText2 = splits[1];
MessageBox.Show(getText1);
MessageBox.Show(getText2);
于 2012-05-07T09:40:08.867 に答える
1

Trim ではなくString.Replaceを探しています。

char[] Delimiter = { '@', '^' };
string getText1 = exactString.Replace(Delimiter,'');

Trim は先頭の文字のみを削除し、Replace は文字列全体を調べます。

(便利な名前の) String.Splitメソッドを使用して、文字列を 2 つに分割できます。

char[] Delimiter = { '@', '^' };
string[] text = exactString.Split(Delimiter, StringSplitOptions.RemoveEmptyEntries);
//text[0] = "ABC", text[1] = "DEF
于 2012-05-07T09:31:41.923 に答える