7

我有一个由连续空格组成的字符串,例如

a(double space)b c d (Double space) e f g h (double space) i

分裂像

a
b c d
e f g h
i

目前我正在尝试这样

   Regex r = new Regex(" +");
        string[] splitString = r.Split(strt);
4

4 回答 4

17

您可以使用String.Split

var items = theString.Split(new[] {"  "}, StringSplitOptions.None);
于 2013-10-02T19:20:06.680 回答
5
string s = "a  b c d  e f g h  i";
var test = s.Split(new String[] { "  " }, StringSplitOptions.RemoveEmptyEntries);

Console.WriteLine(test[0]); // a
Console.WriteLine(test[1]); // b c d
Console.WriteLine(test[2]); // e f g h
Console.WriteLine(test[3]); // i

例子

另一种方法是使用正则表达式,它允许您在两个字符上分割任何空格:

string s = "a      b c d   e f g h      \t\t i";
var test = Regex.Split(s, @"\s{2,}");

Console.WriteLine(test[0]); // a
Console.WriteLine(test[1]); // b c d
Console.WriteLine(test[2]); // e f g h
Console.WriteLine(test[3]); // i

例子

于 2013-10-02T19:22:31.377 回答
3

你可以使用String.Split方法。

返回一个字符串数组,其中包含此字符串中由指定字符串数组的元素分隔的子字符串。一个参数指定是否返回空数组元素。

string s = "a  b c d  e f g h  i";
var array = s.Split(new string[] {"  "}, StringSplitOptions.RemoveEmptyEntries);
foreach (var element in array)
{
    Console.WriteLine (element);
}

输出将是;

a
b c d
e f g h
i

这里一个DEMO.

于 2013-10-02T19:20:38.027 回答
1

使用正则表达式是一个优雅的解决方案

string[] match = Regex.Split("a  b c d  e f g h  i", @"/\s{2,}/",  RegexOptions.IgnoreCase);
于 2013-10-02T19:22:27.847 回答