Mam ciąg zawierający tekst, po którym następuje pusty wiersz. Jaki jest najlepszy sposób, aby zachować część z tekstem, ale usunąć znak nowej linii z białych znaków na końcu?
java
string
line
blank-line
Confiqure
źródło
źródło
Odpowiedzi:
Użyj
String.trim()
metody, aby pozbyć się białych znaków (spacji, nowych linii itp.) Z początku i końca ciągu.źródło
źródło
tl; dr
String::strip…
Stara
String::trim
metoda ma dziwną definicję z białymi znakami .Jak omówiono tutaj , Java 11 dodaje nowe
strip…
metody doString
klasy. Używają one definicji białych znaków bardziej znanej z Unicode. Zobacz zasady tej definicji w klasie JavaDoc dlaCharacter::isWhitespace
.Przykładowy kod.
Możesz też usunąć tylko początkową lub końcową spację.
Nie wspominasz dokładnie, które punkty kodowe tworzą twoje nowe linie. Wyobrażam sobie, że twoja nowa linia prawdopodobnie znajduje się na tej liście punktów kodowych, na które kieruje się
strip
:źródło
Ten kod Java robi dokładnie to, co jest zadane w tytule pytania, czyli „usuwa znaki nowej linii z początku i końca łańcucha java”:
Usuń znaki nowej linii tylko z końca linii:
Usuń znaki nowej linii tylko z początku linii:
źródło
Jeśli twój ciąg jest potencjalnie
null
, rozważ użycieStringUtils.trim()
- wersji z bezpieczną wartością nullString.trim()
.źródło
źródło
Dodam też odpowiedź na to pytanie, ponieważ chociaż miałem to samo pytanie, udzielona odpowiedź nie wystarczyła. Po pewnym przemyśleniu zdałem sobie sprawę, że można to bardzo łatwo zrobić za pomocą wyrażenia regularnego.
Aby usunąć znaki nowej linii od początku:
i koniec łańcucha:
Jestem pewien, że nie jest to najbardziej wydajny sposób przycinania sznurka. Ale wydaje się, że jest to najczystszy i najprostszy sposób na wprowadzenie takiej operacji.
Zauważ, że tę samą metodę można zrobić, aby przyciąć dowolną odmianę i kombinację znaków z dowolnego końca, ponieważ jest to proste wyrażenie regularne.
źródło
split()
to tylko limit. Zostaw to, jeśli chcesz dopasować nieograniczoną liczbę razy.Spróbuj tego
źródło
Jeśli chcesz usunąć tylko podziały wierszy (nie spacje, tabulatory) na początku i na końcu ciągu (nie pomiędzy), możesz zastosować następujące podejście:
Użyj wyrażeń regularnych, aby usunąć znaki powrotu karetki (
\\r
) i znaki nowej linii (\\n
) z początku (^
) i końca ($
) ciągu:Kompletny przykład:
Wyprowadza:
źródło
źródło