Как заменить несколько пробелов одним пробелом в C #? - PullRequest
400 голосов
/ 16 октября 2008

Как мне заменить несколько пробелов в строке только одним пробелом в C #?

Пример:

1 2 3  4    5

будет:

1 2 3 4 5

Ответы [ 23 ]

0 голосов
/ 23 августа 2018

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

    [ ]+    #only space

   var text = Regex.Replace(inputString, @"[ ]+", " ");
0 голосов
/ 30 ноября 2012

Старая школа:

string oldText = "   1 2  3   4    5     ";
string newText = oldText
                    .Replace("  ", " " + (char)22 )
                    .Replace( (char)22 + " ", "" )
                    .Replace( (char)22 + "", "" );

Assert.That( newText, Is.EqualTo( " 1 2 3 4 5 " ) );
0 голосов
/ 16 февраля 2016

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

while (myString.IndexOf("  ", StringComparison.CurrentCulture) != -1)
{
    myString = myString.Replace("  ", " ");
}

Хорошо для использования на коротких строках, но плохо работает на длинных строках с большим количеством пробелов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...