可能重复:
How do I replace multiple spaces with a single space in C#?
如何将" a<many spaces>b c "
等字符串中的空格修剪为"a b c"
,这是最优雅的方法。因此,重复的空格缩小到一个空间。
答案 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)
答案 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);