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"

pedram
quelle

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.)

Mau
quelle
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.

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

trimmed ist jetzt "Hello"

adamse
quelle
13

Verwenden Sie die String.Trim()Funktion.

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

Console.WriteLine(bar); // writes "hello"
Adam Robinson
quelle
10

Verwenden Sie die String.TrimMethode.

jwaliszko
quelle
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.

tdammers
quelle