您可以使用正则表达式来拆分字符串,而不是传入字符数组。这样做的好处是,您可以捕获分裂字符。Regex.Split 将在数组中的元素之间插入任何捕获,如下所示:
string[] space = Regex.Split("123 456 789", @"([,_ ])");
// Results in { "123", " ", "456", " ", "789" }
string[] comma = Regex.Split("123,456,789", @"([,_ ])");
// Results in { "123", ",", "456", ",", "789" }
string[] underscore = Regex.Split("123_456_789", @"([,_ ])");
// Results in { "123", "_", "456", "_", "789" }
然后你可以编辑数组中的所有项目,比如
for (int x = 0; x < space.Length; x += 2)
space[x] = space[x] + "x";
Console.WriteLine(String.Join("", space));
// Will print: 123x 456x 789x
处理多个分隔符时要注意的一件事是,是否有任何行中包含空格、逗号和下划线。例如
37,hello world,238_3
此代码将保留所有不同的分隔符,但您的结果可能不是预期的。例如,上面的输出将是:
37x,hellox worldx,238x_3x