2010-12-09 18 views
25

Comment supprimer l'espace supplémentaire entre deux mots en utilisant C#? Considérez:Comment supprimer l'espace supplémentaire entre deux mots en utilisant C#?

"Hello  World" 

Je veux que cela soit manipulé comme "Hello World".

+0

Voulez-vous dire que vous voulez qu'il devienne "HelloWorld"? –

+0

vos chaînes ... Considérez "Hello World" est le même ici que "Hello World", voulez-vous dire "Hello World" -> "Hello World" voulez-vous juste supprimer ou vous voulez extraire l'espace pour ? – Sebastian

+1

Rappelez-vous les gars, HTML réduit les espaces :) –

Répondre

46
RegexOptions options = RegexOptions.None; 
Regex regex = new Regex(@"[ ]{2,}", options);  
tempo = regex.Replace(tempo, @" "); 

ou même:

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

à la fois tiré de here

0

essayez ceci:

string helloWorldString = "Hello world"; 

while(helloWorldString.Contains(" ")) 
helloWorldString = helloWorldString.Replace(" "," "); 
+4

'Replace' renvoie la nouvelle chaîne, elle ne mute pas la chaîne en cours. Ce que vous avez est une boucle infinie quand 'helloWorldString' a un double espace. – unholysampler

+0

merci pour la prise – codeManJones

12
var text = "Hello  World"; 
Console.WriteLine(String.Join(" ", text.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries))); 
8

Vous pouvez passer des options String.Split() pour lui dire de s'effondrer consécu caractères de séparation tifs, vous pouvez donc écrire:

string expr = "Hello  World"; 
expr = String.Join(" ", expr.Split(new char[] { ' ' }, 
    StringSplitOptions.RemoveEmptyEntries)); 
0
var text = "Hello  World"; 
Regex rex = new Regex(@" {2,}"); 

rex.Replace(text, " "); 
0
string str = "Hello  World"; 

    Regex exper=new Regex(@"\s+"); 
    Console.WriteLine(exper.Replace(str, @" "));