Am fugit într-un cod care are următorul:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Acest lucru pare a fi din punct de vedere funcțional echivalent cu următoarele:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Este o diferență între cele două (org.apache.commons.lang3.StringUtils.isBlank " și " java.lang.Șir.isEmpty
)?
StringUtils.isBlank()
controale care fiecare caracter din șir este un spațiu (sau că șirul este gol sau că-l's nul). Acest lucru este total diferit față de a verifica dacă șirul este gol.
De la cele legate de documentare:
- Verifică dacă un Șir este spațiu gol ("") sau null.
StringUtils.isBlank(null) = adevărat StringUtils.isBlank("") = adevărat StringUtils.isBlank(" ") = adevărat StringUtils.isBlank("bob") = false StringUtils.isBlank(" bob ") = false
Pentru comparație StringUtils.isEmpty:
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
Avertizare: java.lang.String.isBlank() și java.lang.String.isEmpty() lucra la fel, doar că ei don't returna "true" pentru null
.
La răspunsul acceptat de la @arshajii este în totalitate corect. Cu toate acestea, fii mai explicit, spunând de mai jos,
StringUtils.isBlank()
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
StringUtils.isEmpty
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
StringUtils isEmpty = String isEmpty controale + controale pentru nulă.
StringUtils isBlank = StringUtils isEmpty controale + verifică dacă textul conține doar spațiu(s).
Link-uri utile pentru investigații suplimentare:
StringUtils.isBlank() returnează true pentru spații(doar spații goale)și pentru a null String la fel de bine. De fapt, se decupează Char secvențe și apoi efectuează verificarea.
StringUtils.isEmpty() întoarce true atunci când nu există nici charsequence în Șirul parametru sau când Șirul parametru este null. Diferența este că isEmpty() returnează false dacă Șirul parametru conține doar whiltespaces. Se consideră spații goale ca o stare de a fi non gol.
public static boolean isEmpty(String ptext) {
return ptext == null || ptext.trim().length() == 0;
}
public static boolean isBlank(String ptext) {
return ptext == null || ptext.trim().length() == 0;
}
Ambele au același cod de cum va isBlank ocupe spații albe, probabil te-ai referit isBlankString asta are cod pentru manipularea spații goale.
public static boolean isBlankString( String pString ) {
int strLength;
if( pString == null || (strLength = pString.length()) == 0)
return true;
for(int i=0; i < strLength; i++)
if(!Character.isWhitespace(pString.charAt(i)))
return false;
return false;
}
În loc de a folosi terțe părți lib, utilizarea Java 11 isBlank()
String str1 = "";
String str2 = " ";
Character ch = '\u0020';
String str3 =ch+" "+ch;
System.out.println(str1.isEmpty()); //true
System.out.println(str2.isEmpty()); //false
System.out.println(str3.isEmpty()); //false
System.out.println(str1.isBlank()); //true
System.out.println(str2.isBlank()); //true
System.out.println(str3.isBlank()); //true
Singura diferență între isBlank() și isEmpty() este:
StringUtils.isBlank(" ") = true //compared string value has space and considered as blank
StringUtils.isEmpty(" ") = false //compared string value has space and not considered as empty
Am răspunde la acest lucru, deoarece's primul rezultat in Google pentru "String isBlank() Metoda".
Dacă utilizați Java 11 sau mai sus, puteți utiliza clasa String isBlank() metoda. Această metodă face acelasi lucru ca Apache Commons StringUtils clasa.
Am scris un mic post pe această metodă exemple, a citit-o aici.