C#将多个连续的空格替换成一个空格
发布时间: 2011年3月11日我们在C#开发过程中经常会碰到去除空格的问题,去除两边空格用Trim()就可以了,那怎样把中间的连续的多个空格替换为一个空格呢?很多人肯定想到用循环按字符区分判断,如下:
public string GetFields(string strWords)
{
StringBuilder sb = new StringBuilder();
string[] str = strWords.Split(' ');
for (int i = 0; i < strWords.Length; i++)
{
if (str[i] != "")
{
sb.Append(str[i].ToString().Trim());
}
}
return sb.ToString();
}
最终会得到结果:“1 2 34 5”.此处用StringBuilder 而不用+来拼接是为节省内存。这样虽然结果是正确的,如果替换一篇文章的话肯定是不效率的,下面介绍一种高效的方式,那就是用正则,代码如下:
public string GetFields(string strWords)
{
Regex replaceSpace = new Regex(@"\s{2,}",RegexOptions.IgnoreCase);
return replaceSpace.Replace(strWords, " ").Trim();
}
最终也会得到上面的结果,此处\s代表空格,{2,}代表2个以上的连续空格,RegexOptions.IgnoreCase代表不区分大小写。你明白了?方法就是如此简单高效。
- 相关文章:
自己写的net程序实现sql数据库导入excel (2011-1-12 0:2:46)
针对 Java 开发人员的 C# 编程语言 (2011-1-11 23:57:19)
.NET 的商业价值 (2011-1-11 23:42:3)
C# 语言小常识 (2011-1-11 23:30:43)
关于"未能加载文件或程序集"解决方法 (2010-8-2 23:13:41)