4


0

文字列を別の文字列で分割する方法は?

私は次の形式の文字列を持っています

"TestString 1 * <^> * TestString 2 * <^> *テストString3

「<^>」文字列で分割します。

次のステートメントを使用して、必要な出力を提供します

"TestString 1 <^> TestString 2 <^> Test String3"
 .Split("<^>".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)

しかし、私の文字列がテキストのどこかに "<"、 ">"または "^"を含む場合、上記のsplitステートメントはそれも同様に考慮します

「<^>」文字列のみを分割する方法はありますか?

3 Answer


14


「ToCharArray」を使用すると、「これらの文字のいずれかで分割する」と言っていることになります。 * sequence * `" <^> "`で分割するには、 `string []`を受け入れるオーバーロードを使用する必要があります。

string[] parts = yourValue.Split(new string[]{"<^>"}, StringSplitOptions.None);

またはC#3で:

string[] parts = yourValue.Split(new[]{"<^>"}, StringSplitOptions.None);


2


編集:他の人がすでに指摘したように:String.Splitはユースケースに適したオーバーロードを持っています。 以下の答えはまだ正しい(作業中のように)が、 - 行く方法ではありません。

'' '' '

これは、このstring.Splitオーバーロードがセパレーター文字の配列を取るためです。 それぞれが文字列を分割します。

必要なもの:http://msdn.microsoft.com/en-us/library/ze12yx1d%28v=VS.90%29.aspx[Regex.Split]

Regex regex = new Regex(@"<\^>");
string[] substrings = regex.Split("TestString 1 <^> TestString 2 <^>  Test String3");

そして-補足:

"<^>".ToCharArray()

本当に素晴らしい言い方です

new[]{'<', '^', '>'}


1


別のオーバーロードされた `Split`メソッドを試してください:

public string[] Split(
    string[] separator,
    StringSplitOptions options
)

だからあなたの場合、それは次のように見えるかもしれません:

var result =
    yourString.Split(new string[] {"<^>"},StringSplitOptions.RemoveEmptyEntries);

お役に立てれば。