StringUtils.isBlank () बनाम String.isEmpty ()


215

मैं कुछ कोड में भाग गया है जिसमें निम्नलिखित हैं:

String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
    doStuff();
else
    doOtherStuff();

यह कार्यात्मक रूप से निम्न के बराबर प्रतीत होता है:

String foo = getvalue("foo");
if (foo.isEmpty())
    doStuff();
else
    doOtherStuff();

क्या दोनों ( org.apache.commons.lang3.StringUtils.isBlankऔर java.lang.String.isEmpty) के बीच अंतर है ?


7
गौरतलब हो सकता है कि वहाँ भी है StringUtils.isEmpty(foo)जो आपको अशक्त बिंदुओं से बचने में मदद करता है, ठीक वैसे ही isBlank, लेकिन व्हाट्सएप के पात्रों की जाँच नहीं करता है।
जेवी

जवाबों:


380

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

चेतावनी: में java.lang.String .isBlank () और java.lang.String .isEmpty () एक ही काम करते हैं सिवाय इसके कि वे वापस नहीं लौटाते हैं trueके लिए null

java.lang.String.isBlank()

java.lang.String.isEmpty()


135

@ वर्षाजी से स्वीकृत उत्तर पूरी तरह से सही है। हालाँकि नीचे कह कर और अधिक स्पष्ट किया जा रहा है,

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

39

StringUtils isEmpty = स्ट्रिंग isEmpty चेक + अशक्त के लिए चेक।

StringUtils ISBLANK = StringUtils isEmpty चेकों + चेकों पाठ केवल रिक्त स्थान चरित्र (रों) है या नहीं।

आगे की जांच के लिए उपयोगी लिंक:


14

StringUtils.isBlank() अशक्त के लिए भी जाँच करेगा, जबकि:

String foo = getvalue("foo");
if (foo.isEmpty())

एक फेंक देंगे NullPointerExceptionयदि fooअशक्त है।


4
उससे भी बड़ा अंतर है; मेरा जवाब देखिए।
अर्शजी

3
यह गलत है। String.isEmpty () यदि यह शून्य है तो सही वापस आ जाएगा। कम से कम अगर आप apache.commons.lang संस्करण के बारे में बात कर रहे हैं। मैं स्प्रिंग संस्करण के बारे में निश्चित नहीं हूं।
ryoung

1
मेरी टिप्पणी का अर्थ दूर संपादित किया गया था (निष्पक्ष होने के लिए यह गो-गो से अधिक स्पष्ट हो सकता था); करने के लिए ओ पी के value.isEmpty () के बजाय StringUtils.isBlank () - मैं StringUtils.isEmpty () के लिए StringUtils.isBlank () की तुलना नहीं कर रहा था
chut

1
चुत का जवाब सही है। यदि जावा स्ट्रिंग फू शून्य है, तो foo.isEmpty () NullPointerException को फेंकता है। अपाचे StringUtils.isBlank (फू) सही है भले ही फू शून्य है।
825 बजे user2590805

6

StringUtils.isBlanktrueसिर्फ व्हाट्सएप के लिए भी रिटर्न :

isBlank (स्ट्रिंग स्ट्रिंग)

जाँचता है कि क्या एक स्ट्रिंग व्हाट्सएप, खाली ("") या अशक्त है।


5

StringUtils.isBlank(foo)आपके लिए एक अशक्त जाँच करेगा। यदि आप प्रदर्शन करते हैं foo.isEmpty()और fooअशक्त हैं, तो आप एक NullPointerException बढ़ाएँगे।


उससे भी बड़ा अंतर है; मेरा जवाब देखिए।
अर्शजी

2

StringUtils.isBlank () रिक्त स्थान (सिर्फ व्हाट्सएप) और अशक्त स्ट्रिंग के लिए भी सही है। दरअसल यह चार सीक्वेंस को ट्रिम करता है और फिर चेक करता है।

StringUtils.isEmpty () सही है जब स्ट्रिंग पैरामीटर में कोई परिणाम नहीं है या जब स्ट्रिंग पैरामीटर शून्य है। अंतर यह है कि खाली है () स्ट्रिंग गलत है अगर स्ट्रिंग पैरामीटर में सिर्फ विल्टस्पेस हैं। यह व्हॉट्सएप को न खाली होने की स्थिति के रूप में मानता है।


2

केवल इब्लांक () और इस्म खाली () के बीच का अंतर है:

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

1
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;
}

दोनों का एक ही कोड है कि कैसे विलैंक हैबैंक सफ़ेद स्पेस को संभालता है।

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;
}

1

तीसरे पक्ष के परिवाद का उपयोग करने के बजाय, जावा 11 का उपयोग करेंबैंक ()

    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

-2

मैं इसका उत्तर दे रहा हूं क्योंकि यह "स्ट्रिंग isBlank () विधि" के लिए Google में शीर्ष परिणाम है।

यदि आप जावा 11 या इसके बाद के संस्करण का उपयोग कर रहे हैं, तो आप स्ट्रिंग क्लास isBlank () विधि का उपयोग कर सकते हैं । यह विधि Apache Commons StringUtils वर्ग के समान काम करती है।

मैंने इस पद्धति के उदाहरणों पर एक छोटी सी पोस्ट लिखी है, इसे यहां पढ़ें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.