如何将"abc"修剪成"ab c"

Car*_*s00 10 .net c# algorithm

可能重复:
如何在C#中用单个空格替换多个空格?

什么是最优雅的方式如何,例如字符串修剪空白" a<many spaces>b c ""a b c".因此,重复的空格缩小到一个空间.

Hen*_*man 14

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

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


ion*_*den 12

你可以使用Regex这个:

Regex.Replace(my_string, @"\s+", " ").Trim();
Run Code Online (Sandbox Code Playgroud)

  • @leppie这个网站的要点是帮助其他人,第二是为自己赢得声誉..如果人们正在编辑他们的答案只是为了帮助那个有需要的人......如果你认为像声誉猎人那就是你的问题! (4认同)
  • 好的,那你为什么要给-1答案是可以的......它可以很容易地修复......没有意义 (2认同)
  • @Lucero:但是当你将RegEx与这个比较时,我想知道一个简单的Trim()是不是更好.然后我的意思是更好的可读性和可维护性. (2认同)
  • @HenkHolterman,一些正则表达式变得混乱,但这个不是.只需很少的正则表达式知识就可以轻松阅读和理解.此外,由于正则表达式在内部转换为高效的自动机,其性能应该与用于折叠空间的"更简单"正则表达式相当,并且您还可以编译正则表达式以获得更好的性能. (2认同)

Luc*_*ero 8

Regex.Replace(my_string, @"^\s+|\s+$|(\s)\s+", "$1");
Run Code Online (Sandbox Code Playgroud)

  • +1我喜欢它.但我想知道有多少初级程序员会理解它.:) (4认同)