如何从c#中的字符串中删除多余的连字符?

时间:2013-07-22 14:08:08

标签: c# string linq

我有一个字符串,其中空格被hyphen i.e '-'替换,如果有多个连字符,那么我想从字符串中除去一个除了一个。只有连字符必须删除;不是连续的数字。

  

例如: - 11-必须是-11-而不是-1-
   例如: - 12- o / p:-12-
   例如:-12-- o / p:-12 -

在C#中使用Linq或字符串函数。

我使用str = str.Remove(str.Length - 1);尝试了它,但它只删除了一个字符。

4 个答案:

答案 0 :(得分:5)

如果您只想将多个连续的-个字符合并为一个,则可以使用正则表达式轻松完成此操作:

string output = Regex.Replace(input, @"\-+", "-");

答案 1 :(得分:1)

尝试

string sample = "--12";
string Reqdoutput =  sample.Replace("--", "-");

答案 2 :(得分:1)

如果您只想替换连字符,可以执行其他答案中给出的操作之一。要删除所有双字符,您可以执行以下操作:

        String input = "------hello-----";
        int i = 1;
        while (i < input.Length)
        {
            if (input[i] == input[i - 1])
            {
                input = input.Remove(i, 1);
            }
            else
            {
                i++;
            }
        }
        Console.WriteLine(input); // Will give "-helo-"

答案 3 :(得分:0)

为什么不这样做:

yourString = yourString.Replace("--", "-");

或者我是否理解错误的问题?