How do I replace multiple spaces with a single space in C#?

前端 未结 24 1404
面向向阳花
面向向阳花 2020-11-22 06:37

How can I replace multiple spaces in a string with only one space in C#?

Example:

1 2 3  4    5

would be:

1 2 3 4 5         


        
24条回答
  •  清酒与你
    2020-11-22 07:08

    Mix of StringBuilder and Enumerable.Aggregate() as extension method for strings:

    using System;
    using System.Linq;
    using System.Text;
    
    public static class StringExtension
    {
        public static string StripSpaces(this string s)
        {
            return s.Aggregate(new StringBuilder(), (acc, c) =>
            {
                if (c != ' ' || acc.Length > 0 && acc[acc.Length-1] != ' ')
                    acc.Append(c);
    
                return acc;
            }).ToString();
        }
    
        public static void Main()
        {
            Console.WriteLine("\"" + StringExtension.StripSpaces("1   Hello       World  2   ") + "\"");
        }
    }
    

    Input:

    "1   Hello       World  2   "
    

    Output:

    "1 Hello World 2 "
    

提交回复
热议问题