删除单词中两个或多个空格

本文关键字:空格 两个 删除 单词中 | 更新日期: 2023-09-27 18:29:59

我想用C#中的短划线替换单词in中的任何空格。但我的问题是,当我想删除样本字符串中的空间时,如下所示:

"a  b"

"a    b"

当我尝试这个时,我得到的结果是:

CCD_ 2和CCD_ 3

我怎么能用一个破折号来表示单词之间的空格?

像这样:

"a b"

"a-b"

删除单词中两个或多个空格

您可以像下面的一样使用

string xyz = "1   2   3   4   5";
xyz = string.Join( "-", xyz.Split( new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries ));

参考

  1. 如何在C#中用一个空格替换多个空格
  2. 如何用一个空格替换多个空格

您可以在这里简单地使用Regex.Replace

Regex.Replace("a    b", @"'s+", "-");

''s查找space+计数空间(如果按顺序找到一个或多个空间)。图案将被匹配和替换。

这可以通过多种方法来实现。使用正则表达式:

    string a = "a         b   c de";
    string b = Regex.Replace(a, "''s+", "-");             

或者,如果你不想使用Regex,这里有一个函数,它将使用一个字符串和要替换的字符作为参数,并返回格式化的字符串。

    public string ReplaceWhitespaceWithChar(string input,char ch)
    {
        string temp = string.Empty;
        for (int i = 0; i < input.Length; i++)
        {
            if (input[i] != ' ')
            {
                temp += input[i];
            }
            else if (input[i] == ' ' && input[i + 1] != ' ')
            {
                temp += ch;
            }
        }
        return temp;
    }        

您可以将此代码用于您的需求

        string tags = "This           sample";
        string cleanedString = System.Text.RegularExpressions.Regex.Replace(tags, @"'s+", "-");
        Response.Write(cleanedString);

结果将是:

"This-sample"

我希望它对你有用。