Ich habe eine Zeichenfolge, die Text enthält, gefolgt von einer Leerzeile. Was ist der beste Weg, um das Teil mit Text zu erhalten, aber die Leerzeichen-Zeilenumbruch am Ende zu entfernen?
java
string
line
blank-line
Confiqure
quelle
quelle
Antworten:
Verwenden Sie die
String.trim()
Methode, um Leerzeichen (Leerzeichen, neue Zeilen usw.) vom Anfang und Ende der Zeichenfolge zu entfernen.quelle
quelle
tl; dr
String::strip…
Die alte
String::trim
Methode hat eine seltsame Definition von Leerzeichen .Wie hier erläutert , fügt Java 11
strip…
derString
Klasse neue Methoden hinzu . Diese verwenden eine Unicode-versiertere Definition von Leerzeichen. Siehe die Regeln dieser Definition in der Klasse JavaDoc fürCharacter::isWhitespace
.Beispielcode.
Oder Sie können nur das führende oder nur das nachfolgende Leerzeichen entfernen.
Sie erwähnen nicht genau, welche Codepunkte. Ihre Zeilenumbrüche bestehen. Ich kann mir vorstellen, dass Ihre neue Zeile wahrscheinlich in dieser Liste von Codepunkten enthalten ist, auf die Folgendes abzielt
strip
:quelle
Dieser Java-Code macht genau das, was im Titel der Frage gestellt wird, nämlich "Zeilenumbrüche vom Anfang und Ende eines String-Java entfernen":
Entfernen Sie Zeilenumbrüche nur am Ende der Zeile:
Entfernen Sie Zeilenumbrüche nur am Zeilenanfang:
quelle
Wenn Ihre Zeichenfolge möglicherweise vorhanden ist
null
, sollten SieStringUtils.trim()
die nullsichere Version von verwendenString.trim()
.quelle
quelle
Ich werde auch eine Antwort hinzufügen, da die angegebene Antwort nicht ausreichte, obwohl ich dieselbe Frage hatte. Nach einiger Überlegung wurde mir klar, dass dies mit einem regulären Ausdruck sehr einfach möglich ist.
So entfernen Sie Zeilenumbrüche von Anfang an:
und Ende einer Zeichenfolge:
Ich bin sicher, dass dies nicht die leistungsfähigste Methode zum Trimmen einer Zeichenfolge ist. Es scheint jedoch der sauberste und einfachste Weg zu sein, einen solchen Vorgang zu integrieren.
Beachten Sie, dass dieselbe Methode zum Trimmen von Variationen und Kombinationen von Zeichen an beiden Enden angewendet werden kann, da es sich um einen einfachen regulären Ausdruck handelt.
quelle
split()
ist nur die Grenze. Lassen Sie es aus, wenn Sie eine unbegrenzte Anzahl von Malen übereinstimmen möchten.quelle