Natknąłem się na kod, który ma następujące:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Wydaje się to funkcjonalnie równoważne z następującymi:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Czy jest różnica między tymi dwoma ( org.apache.commons.lang3.StringUtils.isBlank
i java.lang.String.isEmpty
)?
java
string
string-utils
NSA
źródło
źródło
StringUtils.isEmpty(foo)
który pomaga uniknąć wskaźników zerowychisBlank
, ale nie sprawdza znaków białych znaków.Odpowiedzi:
StringUtils.isBlank()
sprawdza, czy każdy znak łańcucha jest znakiem spacji (lub czy łańcuch jest pusty lub czy ma wartość zerową). Jest to zupełnie inne niż sprawdzanie, czy łańcuch jest pusty.Z powiązanej dokumentacji:
Dla porównania StringUtils.isEmpty :
Ostrzeżenie: W java.lang.String .isBlank () i java.lang.String .isEmpty () działa tak samo z wyjątkiem oni nie zwracają
true
nanull
.java.lang.String.isBlank()
java.lang.String.isEmpty()
źródło
Akceptowana odpowiedź z @arshajii jest całkowicie poprawna. Jednak mówiąc wprost, mówiąc poniżej,
StringUtils.isBlank ()
StringUtils.isEmpty
źródło
StringUtils isEmpty = Ciąg isEmpty sprawdza + sprawdza, czy jest pusty.
StringUtils isBlank = StringUtils isEmpty sprawdza + sprawdza, czy tekst zawiera tylko znaki białych znaków.
Przydatne linki do dalszego dochodzenia:
źródło
StringUtils.isBlank()
sprawdzi również, czy nie ma wartości null, podczas gdy:wyrzuci
NullPointerException
iffoo
jest zerowy.źródło
StringUtils.isBlank
zwraca równieżtrue
po prostu białe znaki:źródło
StringUtils.isBlank(foo)
wykona za Ciebie kontrolę zerową. Jeśli wykonaszfoo.isEmpty()
ifoo
ma wartość NULL, podniesiesz wyjątek NullPointerException.źródło
StringUtils.isBlank () zwraca wartość true zarówno dla pustych znaków (tylko białych znaków), jak i dla pustych ciągów. W rzeczywistości przycina sekwencje Char, a następnie wykonuje sprawdzenie.
StringUtils.isEmpty () zwraca true, gdy nie ma ciągów znaków w parametrze String lub gdy parametr String ma wartość null. Różnica polega na tym, że isEmpty () zwraca false, jeśli parametr String zawiera tylko spacje. Uważa, że białe znaki są stanem niepustym.
źródło
Jedyna różnica między isBlank () i isEmpty () to:
źródło
Oba mają ten sam kod, w jaki sposób isBlank będzie obsługiwał białe znaki, prawdopodobnie miałeś na myśli, że isBlankString ma kod do obsługi białych znaków.
źródło
Zamiast używać biblioteki innej firmy, użyj Java 11 isBlank ()
źródło
Odpowiadam na to pytanie, ponieważ jest to najlepszy wynik w Google dla „String isBlank () Method”.
Jeśli używasz języka Java 11 lub nowszego , możesz użyć metody klasy String isBlank () . Ta metoda działa tak samo, jak klasa StringUtils Apache Commons.
Napisałem mały post na temat przykładów tej metody, przeczytaj go tutaj .
źródło