Я понимаю, что этот вопрос довольно старый, но есть еще один вариант, который не предусматривает регулярное выражение или циклическое переключение строки и замену вручную:
Private Function StripSpaces(input As String) As String
Return String.Join(" ", input.Split(New Char() {}, StringSplitOptions.RemoveEmptyEntries))
End Function
И эквивалент C #:
private string StripSpaces(string input)
{
return string.Join(" ", input.Split((char[])null, StringSplitOptions.RemoveEmptyEntries));
}
Использование значения «null» в качестве символа разделения на String.Split
приводит к тому, что символом разделения будут все символы, возвращающие значение true, если они были отправлены на Char.IsWhiteSpace
.Таким образом, вызов метода таким образом разделит вашу строку на все пробелы, удалит пустые строки, а затем снова объединит его вместе с одним пробелом между каждым элементом разделения массива.