Wie entferne ich alle Leerzeichen am Anfang oder Ende einer Zeichenfolge?


208

Wie kann ich alle Leerzeichen am Anfang und Ende einer Zeichenfolge entfernen?

Wie so:

"hello"return "hello"
"hello "return "hello"
" hello "return "hello"
" hello world "return"hello world"

Antworten:


444

String.Trim()Gibt eine Zeichenfolge zurück, die der Eingabezeichenfolge mit allen von Anfang und Ende abgeschnittenen Leerzeichen entspricht :

"   A String   ".Trim() -> "A String"

String.TrimStart() Gibt eine Zeichenfolge mit Leerzeichen zurück, die von Anfang an abgeschnitten wurden:

"   A String   ".TrimStart() -> "A String   "

String.TrimEnd() Gibt eine Zeichenfolge mit Leerzeichen zurück, die vom Ende abgeschnitten wurden:

"   A String   ".TrimEnd() -> "   A String"

Keine der Methoden ändert das ursprüngliche Zeichenfolgenobjekt.

(Zumindest in einigen Implementierungen erhalten Sie dasselbe Zeichenfolgenobjekt zurück, mit dem Sie begonnen haben, wenn keine Leerzeichen zum Trimmen vorhanden sind:

csharp> string a = "a"; csharp> string trimmed = a.Trim(); csharp> (object) a == (object) trimmed; returns true

Ich weiß nicht, ob dies durch die Sprache garantiert wird.)


1
⁺¹ für die MS-Definition von Leerzeichen. Ich habe ein seltsames Verhalten festgestellt, .TrimEnd()das nicht funktioniert (für nicht unterbrechende Leerzeichen) , aber am Ende ist es nur so, dass das Zeichen nicht in der Dokumentation aufgeführt ist.
Hi-Angel

2
Es gibt zahlreiche Möglichkeiten, Saiten zu trimmen, und einige sind mit Benchmarks versehen. Trotzdem mag ich .Trim () als am schnellsten zu schreiben und am einfachsten zu lesen.

Vielleicht ist es nützlich, dies zu wissen: Wenn Sie Zeilen wie in einer TextArea multiplizieren. Und wenn Sie die Eingabetaste drücken, erhalten Sie so etwas wie: " A String \r\n " .Trim()erkennt dies auch als Leerzeichen.
Nash Carp

@NashCarp: Das liegt daran, dass \ r und \ n auch Leerzeichen sind
huha

20

Schauen Sie sich an, Trim()welche Zeichenfolge eine neue Zeichenfolge zurückgibt, deren Leerzeichen am Anfang und Ende der aufgerufenen Zeichenfolge entfernt sind.


17
string a = "   Hello   ";
string trimmed = a.Trim();

trimmed ist jetzt "Hello"


13

Verwenden Sie die String.Trim()Funktion.

string foo = "   hello ";
string bar = foo.Trim();

Console.WriteLine(bar); // writes "hello"


8

String.Trim()Entfernt alle Leerzeichen vom Anfang und Ende einer Zeichenfolge. Verwenden Sie einen regulären Ausdruck, um Leerzeichen innerhalb einer Zeichenfolge zu entfernen oder Leerzeichen zu normalisieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.