2016-06-15 8 views
2

ich so eine Zeichenfolge ändern:Wie kann ich eine neue Zeile Zeichen einer Zeichenkette in ein Leerzeichen

Washington 
Madrid 
Delhi 
London 

Und ich will ändern es:

Washington Madrid Delhi London 

Ersetzen der Zeilenumbrüche mit Leerzeichen.

ist, was ich versucht:

private void button1_Click(object sender, EventArgs e) 
{ 
    //string of cities is recieved from a rich textbox 

    String cities; 

    cities = RichTextBox1.Text; 


    cities = cities.Replace(System.Environment.NewLine, " "); 

    RichTextBox1.Clear(); 
    RichTextBox1.AppendText(cities); 
} 
+0

Der folgende Link ist nicht genau Duplikat, sondern enthält eine Erklärung der bekannten Tatsache, dass [C# string replace nicht funktioniert] (http: // stackoverflow. com/fragen/13277667/c-sharp-string-ersetzen-tut-nicht-arbeiten). –

+0

können Sie den genauen Text einfügen, den Sie in der Richtextbox erhalten? Sie können es im Debug-Modus kopieren – Balaji

Antwort

2

Verwenden Sie einfach einen regulären Ausdruck wie folgt aus:

var joined = Regex.Replace(cities, @"[\r\n]+", " ") 

Dies berücksichtigt die Tatsache, dass Sie Wagenrücklauf (oder nicht), Zeilenvorschub und Leerzeichen (möglicherweise auch Registerkarten), sicherstellen, dass die Ausgabe genau ein Leerzeichen zwischen jedem Wort hat

+0

Wie ersetzt das einen Newline-Charakter durch ein Leerzeichen, wie die Frage besagt? –

+0

@MongZhu ganz richtig, ich habe das Beispiel geändert, um die Frage zu passen. Es ist noch erwähnenswert, dass dieser Ansatz "\ r \ n" oder "\ n" behandelt, was meine Absicht war, nur hastig geschrieben –

+0

Ich würde auch Regex über String 'Replace' bevorzugen. Die Frage in Eile zu verpassen ist mir auch passiert. Ich bin mehr Fan von kommentieren als hastig downvoting :) –

8

.Net string type is immutable. Der Code sollte sein,

cities = cities.Replace(System.Environment.NewLine, " "); 
+0

@A Bittersweet Life es funktioniert nicht in meinem Fall. Ich habe versucht, nachdem ich meinen Code geändert habe. Aber es funktioniert in anderen Fällen. wie in diesem Fall Städte = Städte.Replace ("q", ""); –

1

Ihr Code funktioniert nicht, weil Sie müssen gesetzt Ihr cities Objekt mit der Replace Funktion wie folgt aus:

cities = ...Your code... 
Verwandte Themen