如何将“a b c”修剪成“a b c”

时间:2012-04-09 08:05:15

标签: c# .net algorithm

  

可能重复:
  How do I replace multiple spaces with a single space in C#?

如何将" a<many spaces>b c "等字符串中的空格修剪为"a b c",这是最优雅的方法。因此,重复的空格缩小到一个空间。

9 个答案:

答案 0 :(得分:14)

没有正则表达式的解决方案,只是为了让它摆在桌面上:

char[] delimiters = new char[] { ' '};   // or null for 'all whitespace'
string[] parts = txt.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
string result = String.Join(" ", parts);

答案 1 :(得分:12)

您可以使用Regex

Regex.Replace(my_string, @"\s+", " ").Trim();

答案 2 :(得分:8)

Regex.Replace(my_string, @"^\s+|\s+$|(\s)\s+", "$1");

答案 3 :(得分:4)

使用Trim方法从字符串的开头和结尾删除空格,使用正则表达式减少多个空格:

s = Regex.Replace(s.Trim(), @"\s{2,}", " ");

答案 4 :(得分:2)

你可以做一个

Regex.Replace(str, "\\s+", " ").Trim()

http://msdn.microsoft.com/en-us/library/e7f5w83z.aspx

答案 5 :(得分:0)

Regex.Replace(str, "[\s]+"," ")

然后调用Trim去除前导和尾随空格。

答案 6 :(得分:0)

使用正则表达式

String test = " a    b c ";
test = Regex.Replace(test,@"\s{2,}"," ");
test = test.Trim();

此代码使用Regex用一个空格替换任意两个或多个空格,然后在开头和结尾删除。

答案 7 :(得分:0)

使用正则表达式:

"( ){2,}" //Matches any sequence of spaces, with at least 2 of them

并使用它将所有匹配替换为“”。

我还没有在C#中完成它,我需要更多的时间来弄清楚文档的内容,所以你必须自己找到它...抱歉。

答案 8 :(得分:0)

        Regex rgx = new Regex("\\s+");
        string str;
        str=Console.ReadLine();
        str=rgx.Replace(str," ");
        str = str.Trim();
        Console.WriteLine(str);