2012-04-18 4 views
4

У меня есть много строк, которые выглядят так:Удалить пространство из строки

current   affairs 

и я хочу, чтобы строка быть:

current affairs 

я пытаюсь использовать Trim(), но выиграл» т сделать работу

+2

Просто для дальнейшего использования, уравновешивание() удаляет пробелы с начала и конец строки. – Archer

ответ

11

Regex может сделать работу

string_text = Regex.Replace(string_text, @"\s+", " "); 
+5

Или, как более быстрый вариант: 'Regex.Replace (myString," \\ s {2,} "," ")', поэтому вы не заменяете отдельные пробелы сами по себе. В моем тесте разница составляет около 30%. – Joey

6

Вы можете использовать регулярные выражения для этого, см Regex.Replace:

var normalizedString = Regex.Replace(myString, " +", " "); 

Если вы хотите все типы пробелов, используйте @"\s+" вместо " +", который просто имеет пробелы.

var normalizedString = Regex.Replace(myString, @"\s+", " "); 
0

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

yourString= Regex.Replace(yourString, @"\s+", " "); 
0

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

public string RemoveMultipleSpaces(string s) 
{ 
    return Regex.Replace(value, @"\s+", " "); 
} 

После:

string s = "current   affairs "; 
s = RemoveMultipleSpaces(s); 
-1

Сначала вам нужно разделить всю строку, а затем применить облицовку к каждому пункту.

string [] words = text.Split(' '); 
    text=""; 
    forearch(string s in words){ 
    text+=s.Trim(); 
    } 
    //text should be ok at this time 
0

Использование Regex здесь путь,

System.Text.RegularExpressions.Regex.Replace(input, @”\s+”, ” “); 

Это будет удаляет все пробельные символы, включая вкладки, переводы строк и т.д.