2009-05-22 2 views
0

Ich habe eine Zeichenfolge wie folgt;ersetzt mehrere identische Zeichen mit einem in einer Zeichenfolge

Ich möchte diese mehrere Leerzeichen identifizieren und durch ein Leerzeichen ersetzen. Mit der Replace-Funktion werden alle ersetzt. Was ist der richtige Weg, um diese Aufgabe zu erledigen?

+0

Dupe. Check out: http://stackoverflow.com/questions/206717/how-do-i-replace-multiple-spaces-with-a-single-space-in-c –

+0

@chris, stimme, um als Duplikat zu schließen, dann:) –

Antwort

0

Verwenden Sie einen regulären Ausdruck. wie here diese andere SO Benutzer vorgeschlagen

2
import System.Text.RegularExpressions    

dim str as string = "This is a  test ." 
dim r as RegEx = new Regex("[ ]+") 
str = r.Replace(str, " ") 
2

die Regex-Klasse Verwenden Sie das Muster von „ein oder mehr Räumen“, paßt und dann mit einem einzigen Raum all diesen Fälle ersetzen. Hier

ist der C# -Code, es zu tun:

Regex regex = new Regex(" +"); 
string oldString = "this  is a string  . "; 
string newString = regex.Replace(oldString, " "); 
1

Ich würde das + s \ verwenden Modifikator, die einfacher zu lesen

public Regex MyRegex = new Regex(
     "\\s+", 
    RegexOptions.Multiline 
    | RegexOptions.CultureInvariant 
    | RegexOptions.Compiled 
    ); 


// This is the replacement string 
public string MyRegexReplace = " "; 

string result = MyRegex.Replace(InputText,MyRegexReplace); 

Oder in VB

Public Dim MyRegex As Regex = New Regex(_ 
     "\s+", _ 
    RegexOptions.Multiline _ 
    Or RegexOptions.CultureInvariant _ 
    Or RegexOptions.Compiled _ 
    ) 


Public Dim MyRegexReplace As String = " " 


Dim result As String = MyRegex.Replace(InputText,MyRegexReplace)