Jak usunąć całą spację z początku lub końca łańcucha?

208

Jak mogę usunąć wszystkie białe znaki z początku i końca łańcucha?

Tak jak:

"hello"zwraca "hello"
"hello "zwraca "hello"
" hello "zwraca "hello"
" hello world "powraca"hello world"

pedram
źródło

Odpowiedzi:

445

String.Trim()zwraca ciąg znaków równy wejściowemu ciągowi ze wszystkimi białymi spacjami przyciętymi od początku i końca:

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

String.TrimStart() zwraca ciąg z białymi spacjami przyciętymi od początku:

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

String.TrimEnd() zwraca ciąg z białymi spacjami przyciętymi od końca:

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

Żadna z metod nie modyfikuje oryginalnego obiektu łańcuchowego.

(Przynajmniej w niektórych implementacjach, jeśli nie ma żadnych białych znaków do przycięcia, otrzymasz ten sam ciąg znaków, który zacząłeś:

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

Nie wiem, czy gwarantuje to język).

Mau
źródło
1
For¹ dla definicji białych znaków w MS. Spotkałem dziwne zachowanie, które .TrimEnd()nie działa (w przypadku nierozdzielającego znaku spacji) , ale ostatecznie jest to, że postać nie jest wymieniona w dokumentacji.
Cześć Anioł
2
Istnieje wiele sposobów przycinania strun, a wiele z nich jest oznaczonych na ławce. Mimo to podoba mi się .Trim () jako najszybszy i najłatwiejszy do napisania.
Może warto wiedzieć: jeśli masz wiele linii, jak w TextArea. I naciśniesz klawisz Enter, otrzymasz coś takiego: " A String \r\n " .Trim()rozpoznaje to również jako spację.
Nash Carp
@NashCarp: To dlatego, że \ r i \ n są również znakami spacji
huha
20

przyjrzyj się, Trim()który zwraca nowy ciąg znaków z białymi znakami usuniętymi na początku i na końcu łańcucha, do którego jest wywoływany.

Russ Cam
źródło
17
string a = "   Hello   ";
string trimmed = a.Trim();

trimmed jest teraz "Hello"

adamse
źródło
13

użyj String.Trim()funkcji.

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

Console.WriteLine(bar); // writes "hello"
Adam Robinson
źródło
10

Użyj String.Trimmetody

jwaliszko
źródło
8

String.Trim()usuwa wszystkie białe znaki z początku i końca łańcucha. Aby usunąć białe znaki w ciągu lub znormalizować białe znaki, użyj wyrażenia regularnego.

tdammers
źródło