-1

私は(ファイルから)文字列を持っています:

    [\x22thanh\x22,
        [[\x22thanh\\u003Cb\\u003E nien\\u003C\\/b\\u003E\x22,0,[]],
        [\x22thanh\\u003Cb\\u003E ca\\u003C\\/b\\u003E\x22,0,[]],
        [\x22thanh\\u003Cb\\u003E nhan\\u003C\\/b\\u003E\x22,0,[]],
        [\x22thanh\\u003Cb\\u003E thao\\u003C\\/b\\u003E\x22,0,[]]
    ]

この文字列を変数名「s」に保存しました。「[\x22」と「\x22」の間のすべての文字列を分割し、「s2」という名前の配列に保存します。どうすればこれを行うことができますか?どうもありがとうございました!

4

4 に答える 4

3

次のようにできます:

var myArray = myString.Split("[\x22");

最後の文字も削除しますか?

于 2012-09-03T05:55:37.930 に答える
2
string[] s2 = s.Split(new string[] {@"[\x22", @"\x22"}, 
                        StringSplitOptions.RemoveEmptyEntries);
于 2012-09-03T05:57:48.187 に答える
1
        string s = @"[\x22thanh\x22,
    [[\x22thanh\\u003Cb\\u003E nien\\u003C\\/b\\u003E\x22,0,[]],
    [\x22thanh\\u003Cb\\u003E ca\\u003C\\/b\\u003E\x22,0,[]],
    [\x22thanh\\u003Cb\\u003E nhan\\u003C\\/b\\u003E\x22,0,[]],
    [\x22thanh\\u003Cb\\u003E thao\\u003C\\/b\\u003E\x22,0,[]]
]";
        string start = @"[\x22";
        string end = @"\x22";
        int pos = -1;

        List<string> list = new List<string>();

        while ((pos = s.IndexOf(start)) > -1)
        {
            s = s.Substring(pos + start.Length);
            if ((pos = s.IndexOf(end)) > -1)
            {
                list.Add(s.Substring(0, pos));
                s = s.Substring(pos + end.Length);
            }
            else
                break;
        }

        string[] s2 = list.ToArray();

編集

を使用した同じ結果Split

  string[] s2 = s.Split(new string[] { @"[\x22" }, 
                        StringSplitOptions.RemoveEmptyEntries)
                 .Select(i => i.Substring(0, i.IndexOf(@"\x22")))
                 .ToArray();
于 2012-09-03T06:10:12.467 に答える
1

最初の \x22 文字列と次の \x22 文字列の位置を見つけることができます。次に、その位置の間のテキストをコピーする必要があります。IndexOfメソッドを使用して位置を取得できます。

于 2012-09-03T05:57:33.070 に答える