Ich bin auf einen Code gestoßen, der Folgendes enthält:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Dies scheint funktional dem Folgenden zu entsprechen:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Ist ein Unterschied zwischen den beiden ( org.apache.commons.lang3.StringUtils.isBlank
und java.lang.String.isEmpty
)?
java
string
string-utils
NSA
quelle
quelle
StringUtils.isEmpty(foo)
der Sie Nullzeiger vermeiden könnenisBlank
, aber nicht nach Leerzeichen suchen.Antworten:
StringUtils.isBlank()
prüft, ob jedes Zeichen der Zeichenfolge ein Leerzeichen ist (oder ob die Zeichenfolge leer oder null ist). Dies ist völlig anders als nur zu überprüfen, ob die Zeichenfolge leer ist.Aus der verlinkten Dokumentation:
Zum Vergleich StringUtils.isEmpty :
Warnung: In java.lang.String funktionieren .isBlank () und java.lang.String .isEmpty () gleich, außer dass sie nicht
true
für zurückkehrennull
.java.lang.String.isBlank()
java.lang.String.isEmpty()
quelle
Die akzeptierte Antwort von @arshajii ist völlig korrekt. Seien Sie jedoch expliziter, indem Sie unten sagen:
StringUtils.isBlank ()
StringUtils.isEmpty
quelle
StringUtils isEmpty = String isEmpty prüft + prüft auf null.
StringUtils isBlank = StringUtils isEmpty prüft + prüft, ob der Text nur Leerzeichen enthält.
Nützliche Links für weitere Untersuchungen:
quelle
StringUtils.isBlank()
wird auch auf null prüfen, während dies:wird ein
NullPointerException
if werfenfoo
ist null.quelle
StringUtils.isBlank
gibt auchtrue
nur für Leerzeichen zurück:quelle
StringUtils.isBlank(foo)
führt eine Nullprüfung für Sie durch. Wenn Sie ausführenfoo.isEmpty()
undfoo
null ist, wird eine NullPointerException ausgelöst.quelle
StringUtils.isBlank () gibt true für Leerzeichen (nur Leerzeichen) und auch für null String zurück. Tatsächlich werden die Char-Sequenzen abgeschnitten und dann eine Überprüfung durchgeführt.
StringUtils.isEmpty () gibt true zurück, wenn der String-Parameter keine Zeichenfolge enthält oder wenn der String-Parameter null ist. Der Unterschied besteht darin, dass isEmpty () false zurückgibt, wenn der String-Parameter nur Leerzeichen enthält. Es betrachtet Leerzeichen als einen Zustand, in dem es nicht leer ist.
quelle
Der einzige Unterschied zwischen isBlank () und isEmpty () ist:
quelle
Beide haben den gleichen Code, wie isBlank mit Leerzeichen umgehen soll. Wahrscheinlich haben Sie damit gemeint, dass isBlankString den Code für die Behandlung von Leerzeichen enthält.
quelle
Verwenden Sie anstelle von lib von Drittanbietern Java 11 isBlank ()
quelle
Ich beantworte dies, weil es das beste Ergebnis in Google für "String isBlank () Method" ist.
Wenn Sie Java 11 oder höher verwenden, können Sie die String-Klasse isBlank () verwenden. -Methode verwenden. Diese Methode macht dasselbe wie die Apache Commons StringUtils-Klasse.
Ich habe einen kleinen Beitrag zu diesen Methodenbeispielen geschrieben, lesen Sie ihn hier .
quelle