如何将此字符串拆分为数组?

时间:2012-09-03 05:53:10

标签: c# arrays string split

我有字符串(来自文件):

    [\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 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

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

你想删除最后的字符吗?

答案 1 :(得分:2)

string[] s2 = s.Split(new string[] {@"[\x22", @"\x22"}, 
                        StringSplitOptions.RemoveEmptyEntries);

答案 2 :(得分:1)

您可以找到第一个\ x22和下一个\ x22字符串的位置。接下来,您应该复制该位置之间的文本。您可以使用IndexOf方法获得排名。

答案 3 :(得分: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();