ASP.NET C#String.Split

时间:2011-06-14 09:07:21

标签: c# asp.net

如果单词之间有空格,我想分割一个字符串。

例如:

"Blood Doner Jack Stv 240 o+"

当我使用单个空格拆分它时,它会返回一个包含6个项目的数组对象,但如果我使用相同的文本集进行尝试,并且有2个空格代替1,则将数组增加到7:

"Blood  Doner Jack Stv 240 o+"

所以我想知道如何删除双空格以及单个空格。

我知道我可以使用2个空格到1个空格的Replace()但是如果我有3个或4个空格怎么办?

提前致谢!

4 个答案:

答案 0 :(得分:15)

您可以使用overload of String.Split which takes a StringSplitOptions

string[] bits = text.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);

请注意,为避免在每次调用时创建char数组,您可以使用:

private static readonly char[] SplitSeparators = {' '};

...

string[] bits = text.Split(SplitSeparators,
                           StringSplitOptions.RemoveEmptyEntries);

答案 1 :(得分:4)

只需使用StringSplitOptions.RemoveEmptyEntries

 var s = "Blood  Doner Jack Stv 240 o+";
 var arr = s.Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries);

或者您可以使用Regexp替换多个空格,而不是使用Split:

string str = System.Text.RegularExpressions.RegEx.Replace(s ,@"\s+"," ");
var arr = str.Split(new[] {" "}, StringSplitOptions.None);

答案 2 :(得分:1)

这将删除空格:

RegexOptions options = RegexOptions.None;
Regex regex = new Regex(@"[ ]{2,}", options);     
tempo = regex.Replace(tempo, @" ");

然后你可以正常拆分

How do I replace multiple spaces with a single space in C#?

How to remove extra space between two words using C#?

答案 3 :(得分:0)

string s1 = "Blood  Doner Jack Stv 240 o+";
Regex r = new Regex(@"\s+");
string s2 = r.Replace(s1, @" ");
string[] s3 = s2.Split(' ');