首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用一个空格替换多个空格

如何用一个空格替换多个空格
EN

Stack Overflow用户
提问于 2009-08-14 19:53:58
回答 11查看 114.8K关注 0票数 113

假设我有一个字符串,比如:

代码语言:javascript
复制
"Hello     how are   you           doing?"

我想要一个能把多个空格变成一个空格的函数。

所以我会得到:

代码语言:javascript
复制
"Hello how are you doing?"

我知道我可以使用regex或call

代码语言:javascript
复制
string s = "Hello     how are   you           doing?".replace("  "," ");

但我必须多次调用它,以确保所有连续的空格都被替换为一个空格。

有没有内置的方法来解决这个问题呢?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-08-14 19:57:50

代码语言:javascript
复制
string cleanedString = System.Text.RegularExpressions.Regex.Replace(dirtyString,@"\s+"," ");
票数 206
EN

Stack Overflow用户

发布于 2009-08-14 19:58:38

一个常规的表达式将是最简单的方法。如果您以正确的方式编写正则表达式,则不需要多次调用。

将其更改为:

代码语言:javascript
复制
string s = System.Text.RegularExpressions.Regex.Replace(s, @"\s{2,}", " "); 
票数 19
EN

Stack Overflow用户

发布于 2014-12-16 18:23:54

这是我使用的解决方案。没有RegEx和String.Split。

代码语言:javascript
复制
public static string TrimWhiteSpace(this string Value)
{
    StringBuilder sbOut = new StringBuilder();
    if (!string.IsNullOrEmpty(Value))
    {
        bool IsWhiteSpace = false;
        for (int i = 0; i < Value.Length; i++)
        {
            if (char.IsWhiteSpace(Value[i])) //Comparion with WhiteSpace
            {
                if (!IsWhiteSpace) //Comparison with previous Char
                {
                    sbOut.Append(Value[i]);
                    IsWhiteSpace = true;
                }
            }
            else
            {
                IsWhiteSpace = false;
                sbOut.Append(Value[i]);
            }
        }
    }
    return sbOut.ToString();
}

因此,您可以:

代码语言:javascript
复制
string cleanedString = dirtyString.TrimWhiteSpace();
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1279859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档