Unterschied zwischen String trim() and strip () - Methoden in Java 11
Unter anderen änderungen, JDK 11 stellt 6 neue Methoden für java.lang.Die String-Klasse:
repeat(int)
- Wiederholt die Zeichenfolge so oft, wie es von derint
parameterlines()
- Verwendet eine Spliterator zu träge geben die Zeilen aus der Quell-ZeichenfolgeisBlank()
- Zeigt an, wenn der String leer oder enthält nur LeerzeichenstripLeading()
- Entfernt die Leerzeichen aus dem BeginnstripTrailing()
- Entfernt die Leerzeichen aus dem Endestrip()
- Entfernt Leerzeichen von Anfang und Ende von string
Insbesondere strip()
sieht sehr ähnlich trim()
. Als pro dieser Artikel strip*()
Methoden wurden entwickelt, um:
Den String.Streifen(), String.stripLeading () und String.stripTrailing()
Methoden trim white space [bestimmt durch die Zeichen.isWhiteSpace()]
deaktivieren Sie die Vorderseite, Rückseite oder Vorder-und Rückseite der gezielte
String.
String.trim()
JavaDoc-Staaten:
/**
* Returns a string whose value is this string, with any leading and trailing
* whitespace removed.
* ...
*/
Die nahezu identisch ist mit dem Zitat oben.
Was genau der Unterschied zwischen String.trim()
und String.strip()
seit Java 11?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurz:
strip()
ist "Unicode-aware" evolution dertrim()
.CSR : JDK-8200378
Ein gemeinsames Merkmal dieser neuen Methoden ist, dass Sie eine andere (neuere) definition von "whitespace" als alte Methoden wie
String.trim()
. Bug JDK-8200373.Die Methode
isWhitespace(char)
wurde HinzugefügtCharacter
mit JDK 1.1, aber die MethodeisWhitespace(int)
wurde nicht eingeführt, um dieCharacter
Klasse bis JDK 1.5. Die letztere Methode (die man akzeptiert einen parameter vom Typint
) wurde Hinzugefügt, die Unterstützung für zusätzliche Zeichen. Die Javadoc-Kommentare für dieCharacter
- Klasse definieren, die zusätzliche Zeichen (in der Regel modelliert mit int-basierten "code-point") im Vergleich zu BMP-Zeichen (in der Regel modelliert mit single Charakter):OpenJDK Änderungssatz.
Benchmark-Vergleich zwischen
trim()
undstrip()
- Warum ist String.strip() 5 mal schneller als String.trim() für leeren string In Java 11Hier ist ein unit-test zeigt, dass die Antwort von @MikhailKholodkov, die mit Java 11.
(Beachten Sie, dass
\u2000
über\u0020
und nicht als Leerzeichen durchtrim()
)