Ответ 1

Вы можете использовать Regex для этого:

Regex.Replace(my_string, @"\s+", " ").Trim();

Ответ 2

Решение без регулярного выражения, просто чтобы оно было на столе:

char[] delimiters = new char[] { ' '};   // or null for 'all whitespace'
string[] parts = txt.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
string result = String.Join(" ", parts);

Ответ 3

Regex.Replace(my_string, @"^\s+|\s+$|(\s)\s+", "$1");

Ответ 4

Используйте метод Trim для удаления пробелов из начала и конца строки и регулярное выражение для сокращения нескольких пробелов:

s = Regex.Replace(s.Trim(), @"\s{2,}", " ");

Ответ 6

Regex.Replace(str, "[\s]+"," ")

Затем вызовите Trim, чтобы избавиться от верхнего и конечного пробелов.

Ответ 7

использовать регулярное выражение

String test = " a    b c ";
test = Regex.Replace(test,@"\s{2,}"," ");
test = test.Trim();

этот код заменяет любые 2 или более пробела одним пробелом, используя Regex, затем удаляйте в начале и в конце.

Ответ 8

Используйте регулярное выражение:

"( ){2,}" //Matches any sequence of spaces, with at least 2 of them

и используйте это, чтобы заменить все совпадения на "".

Я не делал этого на С#, и мне нужно больше времени, чтобы выяснить, что говорит документация, поэтому вам придется найти это самостоятельно.. извините.

Ответ 9

        Regex rgx = new Regex("\\s+");
        string str;
        str=Console.ReadLine();
        str=rgx.Replace(str," ");
        str = str.Trim();
        Console.WriteLine(str);