जांचें कि क्या कोई स्ट्रिंग रिक्त नहीं है और खाली नहीं है


490

मैं कैसे जांच सकता हूं कि क्या कोई स्ट्रिंग रिक्त नहीं है और खाली नहीं है?

public void doStuff(String str)
{
    if (str != null && str != "**here I want to check the 'str' is empty or not**")
    {
        /* handle empty string */
    }
    /* ... */
}

8
आपको शायद PreparedStatementस्ट्रिंग कॉन्कैटिनेशन प्राइमेटिक्स द्वारा SQL क्वेरी बनाने के बजाय इस तरह का उपयोग करना चाहिए । इंजेक्शन कमजोरियों के सभी प्रकार से बचा जाता है, बहुत अधिक पठनीय, आदि
polygenel स्नेहक

2
आप वह वर्ग बना सकते हैं जो अशक्त मान या अशक्त वस्तु की जाँच करेगा। इससे आपको पुन: उपयोग करने की क्षमता में सुधार करने में मदद मिलेगी .. stackoverflow.com/a/16833309/1490962
भूषणकुमार लीलपारा

जवाबों:


895

Ismpty () के बारे में क्या है ?

if(str != null && !str.isEmpty())

&&इस क्रम के भागों का उपयोग करना सुनिश्चित करें , क्योंकि &&असफल होने पर पहले भाग के दूसरे भाग का मूल्यांकन करने के लिए जावा आगे नहीं बढ़ेगा , इस प्रकार यह सुनिश्चित करना कि आपको अशक्त सूचक अपवाद नहीं मिलेगा, str.isEmpty()यदि strवह अशक्त है।

सावधान, यह केवल जावा एसई 1.6 के बाद से उपलब्ध है। आपको str.length() == 0पिछले संस्करणों पर जांच करनी होगी ।


व्हाट्सएप को भी अनदेखा करना:

if(str != null && !str.trim().isEmpty())

(चूंकि जावा 11 str.trim().isEmpty()को कम किया जा सकता है str.isBlank()जो अन्य यूनिकोड सफेद स्थानों के लिए भी परीक्षण करेगा)

एक आसान कार्य में लिपटे:

public static boolean empty( final String s ) {
  // Null-safe, short-circuit evaluation.
  return s == null || s.trim().isEmpty();
}

हो जाता है:

if( !empty( str ) )

80
ध्यान दें कि isEmpty()एक स्ट्रिंग उदाहरण (गैर-स्थिर) की आवश्यकता प्रतीत होती है। एक अशक्त संदर्भ पर इसे लागू करने से NullPointerException फेंक देगा।
जेम्स पी।

38
या यदि (str! = Null &&! Str.trim ()। IsEmpty ()), व्हाट्सएप को अनदेखा करने के लिए।
पापाफ्रायड

अगर (txt.getText ()। लंबाई ()) == 0) // लेआउट से तत्व प्राप्त करें
jruzafa

32
मैं TextUtils.isEmpty(String)जाँच करने के लिए उपयोग करने के लिए सिफारिश कर रहा हूँ स्ट्रिंग खाली या अशक्त है। अच्छा और छोटा। TextUtils वर्ग Android SDK का एक हिस्सा है।
जॉर्ज मैसरडज़े 21

1
@ user1154390: कभी-कभी स्पष्ट रूप से स्पष्टता के लिए सच्चे और झूठे का उपयोग करने के लायक होता है, लेकिन जब स्थिति सही के लिए सही और झूठ के लिए सही होती है, तो इसकी अनावश्यक जटिलता। सीधे शब्दों में कहें (str != null && str.length() > 0)
टूलमेकरसैट

213

Org.apache.commons.lang.StringUtils का उपयोग करें

मैं इस तरह की चीजों के लिए अपाचे कॉमन-लैंग का उपयोग करना पसंद करता हूं , और विशेष रूप से स्ट्रिंगटीलिल्स उपयोगिता वर्ग:

import org.apache.commons.lang.StringUtils;

if (StringUtils.isNotBlank(str)) {
    ...
} 

if (StringUtils.isBlank(str)) {
    ...
} 

17
यदि आप सिर्फ isEmpty का उपयोग कर सकते हैं तो Apache commons-lang एक ओवरकिल नहीं है? बस उत्सुक।
zengr

17
@zengr - नहीं, क्योंकि आप सबसे निश्चित रूप से अन्य चीजों का उपयोग करेंगे :)
Bozho

2
@zengr वास्तव में, यदि आप केवल उपयोग करते हैं isEmptyया isBlank, हो सकता है कि यह तीसरे पक्ष के पुस्तकालय को शामिल करने के लिए उपयोगी नहीं है। आप इस तरह की विधि प्रदान करने के लिए बस अपनी उपयोगिता वर्ग बना सकते हैं। हालांकि, जैसा कि Bozho समझाते हैं, commons-langपरियोजना कई उपयोगी तरीके प्रदान करती है!
रोमेन लिंसोलास

13
क्योंकि साथ StringUtils.isNotBlank(str)ही अशक्तता की जाँच करता है।
sdesciencelover

1
यदि आप स्प्रिंग फ्रेमवर्क का उपयोग करते हैं, तो यह फ्रेम के जार में बांधा जा सकता है।
linuxunil

103

बस यहां Android जोड़ रहा है:

import android.text.TextUtils;

if (!TextUtils.isEmpty(str)) {
...
}

1
@staticx, StringUtils विधि लैंग संस्करण 2.0 में बदल गई। यह अब CharSequence को ट्रिम नहीं करता है। वह कार्यक्षमता isBlank () में उपलब्ध है।
निक

50

@BJorn और @SeanPatrickFloyd में जोड़ने के लिए अमरूद का तरीका यह है:

Strings.nullToEmpty(str).isEmpty(); 
// or
Strings.isNullOrEmpty(str);

कॉमन्स लैंग कई बार अधिक पठनीय होता है, लेकिन मैं धीरे-धीरे अमरूद पर अधिक भरोसा करता रहा हूं और कभी-कभी कॉमन्स लैंग भ्रमित हो रहा है जब यह आता है isBlank()(जैसा कि व्हाट्सएप में है या नहीं)।

अमरूद का कॉमन्स लैंग का संस्करण isBlankहोगा:

Strings.nullToEmpty(str).trim().isEmpty()

मैं कहूंगा कि कोड ""(खाली) की अनुमति नहीं देता है और null यह संदिग्ध और संभावित रूप से छोटी गाड़ी है कि यह संभवतः उन सभी मामलों को नहीं संभालता है जहां अनुमति नहीं देता nullहै (हालांकि SQL के लिए मैं समझ सकता हूं कि SQL / HQL के बारे में अजीब है '')।


दूसरा अमरूद भी। अमरूद बहुवचन स्थैतिक वर्गों के एक सम्मेलन का अनुसरण करता है। स्ट्रिंग के लिए, स्थिर तरीकों के लिए स्ट्रिंग्स की कोशिश करें जैसे कि NullOrEmpty (str)।
बृहस्पति

34
str != null && str.length() != 0

वैकल्पिक रूप से

str != null && !str.equals("")

या

str != null && !"".equals(str)

नोट: दूसरा चेक (पहला और दूसरा विकल्प) मान लेता है कि अशक्त नहीं है। यह केवल इसलिए ठीक है क्योंकि पहला चेक ऐसा कर रहा है (और यदि दूसरा गलत है तो जावा दूसरा चेक नहीं करता है)!

महत्वपूर्ण: स्ट्रिंग समानता के लिए == का उपयोग न करें। == पॉइंटर चेक करता है बराबर है, न कि वैल्यू। दो तार अलग-अलग मेमोरी एड्रेस (दो इंस्टेंसेस) में हो सकते हैं, लेकिन उनका मूल्य समान होता है!


धन्यवाद ... str.length () ने मेरे लिए काम किया। मेरा मामला यह था कि मैं डेटाबेस से क्वेरी करने के बाद सरणी से मान प्राप्त कर रहा हूं। यहां तक ​​कि अगर डेटा खाली था, जब मैंने str.length की तो यह "1" लंबाई दे रहा था। बहुत अजीब है लेकिन मुझे यह दिखाने के लिए धन्यवाद।
अर्न-आर्न

कि डेटाबेस के आंतरिक के साथ क्या करना है। या तो यह एक चर क्षेत्र के बजाय एक चर क्षेत्र है (इसलिए यह रिक्त स्थान के साथ पैड) या डेटाबेस खाली तारों को पसंद नहीं करता है। मुझे लगता है कि सबसे अच्छा उन मानों को प्रीप्रोसेस करने के दौरान / क्वेरी करते समय (ऐप के बाद डेटा एक्सेस में) है।
हेलियोस

मुझे लगता है कि लंबाई की जाँच करना 'बराबर' से बेहतर है क्योंकि यह एक O (1) ऑपरेशन है क्योंकि लंबाई स्ट्रिंग के मामले में कैश्ड है।
१०:३२

26

लगभग हर पुस्तकालय मुझे पता है कि एक उपयोगिता वर्ग कहा जाता है StringUtils, StringUtilया StringHelper, और वे आम तौर पर उस विधि को शामिल करते हैं जिसे आप खोज रहे हैं।

मेरा व्यक्तिगत पसंदीदा अपाचे कॉमन्स / लैंग है , जहां स्ट्रिंजटिल्स वर्ग में, आपको दोनों मिलेंगे

  1. StringUtils.isEmpty (स्ट्रिंग) और
  2. StringUtils.isBlank (स्ट्रिंग) विधि

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

स्प्रिंग, विकेट और इसी तरह के अन्य कामों में समान उपयोगिता वर्ग हैं। यदि आप बाहरी पुस्तकालयों का उपयोग नहीं करते हैं, तो आप अपने स्वयं के प्रोजेक्ट में एक स्ट्रिंगट्रिल्स क्लास शुरू करना चाह सकते हैं।


अद्यतन: कई साल बीत चुके हैं, और इन दिनों मैं अमरूद की Strings.isNullOrEmpty(string)विधि का उपयोग करने की सलाह दूंगा


मैं पूछना चाहता हूं कि अब आप यह क्यों सुझाते हैं? मैं जानना चाहूंगा कि क्या स्ट्रिंग्स के बीच अंतर है ।isNullOrEmpty (string) और StringUtils.isEmpty (स्ट्रिंग)
vicangel

@vicangel अपाचे कॉमन्स तरीके मान्यताओं और चीजों से भरे हुए हैं जो मैंने नहीं पूछे। अमरूद के साथ, मुझे ठीक वही मिलता है जो मैंने मांगा था और इससे कम या ज्यादा नहीं
शॉन पैट्रिक फ्लोयड

24

यह मेरे लिए काम करता है:

import com.google.common.base.Strings;

if (!Strings.isNullOrEmpty(myString)) {
       return myString;
}

सही है अगर दिए गए स्ट्रिंग शून्य है या खाली स्ट्रिंग है।

NullToEmpty के साथ अपने स्ट्रिंग संदर्भों को सामान्य करने पर विचार करें। यदि आप करते हैं, तो आप इस विधि के बजाय String.isEmpty () का उपयोग कर सकते हैं, और आपको String.toUpperCase जैसी विधियों के विशेष अशक्त-सुरक्षित रूपों की आवश्यकता नहीं होगी। या, यदि आप "दूसरी दिशा में" को सामान्य करना चाहते हैं, तो खाली तारों को अशक्त करने के लिए, आप खाली-खाली का उपयोग कर सकते हैं।


2
<निर्भरता> <groupId> com.google.guava </ groupId> <विरूपण साक्ष्य> अमरूद </ विरूपण साक्ष्य> <संस्करण> 12.0 </ संस्करण> </ निर्भरता>
जुन्चेन लियू

11

कैसा रहेगा:

if(str!= null && str.length() != 0 )

यदि NULL है तो NullPointerException को फेंकता है।
माइंडविन

13
@Mindwin यह सच नहीं है। यह कोड को &&if str == null के दाईं ओर निष्पादित नहीं करेगा , इस प्रकार एक NullPointerException को रोकना। (स्रोत: मैंने अभी-अभी कोशिश की है)
Zach Lysobey

मुझे सही साबित होना है। शर्म की बात है कि Zach और GI Joe कहीं बाहर लटका प्रतिक्रियाओं के साथ नहीं छोड़ा जाएगा टिप्पणी को नष्ट नहीं करेगा। Lolz। लेकिन यह जानकर अच्छा लगता है कि, यह लंघन तार्किक विफलताओं का कारण हो सकता है यदि आप केवल परीक्षण सामग्री के अलावा कुछ और करते हैं और छोड़ दिया विधि कॉल पर एक बूलियन वापस करते हैं।
माइंडविन

2
@Mindwin यह जानना अच्छा है कि आप जिस भाषा का उपयोग कर रहे हैं वह वास्तव में कैसे काम करती है। यदि आप शॉर्ट-सर्किट मूल्यांकन को नहीं समझते हैं, तो इसका उपयोग न करें या, बेहतर अभी भी, इसके बारे में जानें।
लोर्ने

7

Apache StringUtils का उपयोग करें ।NotBlank विधि की तरह

StringUtils.isNotBlank(str)

यह तभी लौटेगा जब स्ट्रॉ शून्य नहीं होगा और खाली नहीं होगा।


वास्तव में अगर स्ट्रिंग यहाँ शून्य है, तो कथन सही है
एलेक्जेंड्रा

यह सच है, मेरा बुरा !! इसके बजाय अपाचे-कॉमन्स का उपयोग करके StringUtils.isNotEmpty (str) काम करेगा।
एक अशक्त सूचक

6

आपको उपयोग करना चाहिए org.apache.commons.lang3.StringUtils.isNotBlank()या org.apache.commons.lang3.StringUtils.isNotEmpty। इन दोनों के बीच का निर्णय इस बात पर आधारित है कि आप वास्तव में क्या जाँचना चाहते हैं।

IsNotBlank () जांच करता है कि इनपुट पैरामीटर है:

  • शून्य नहीं,
  • खाली स्ट्रिंग नहीं ("")
  • व्हॉट्सएप पात्रों का एक क्रम नहीं ("")

IsNotEmpty () की जाँच करता है कि केवल इनपुट पैरामीटर है

  • शून्य नहीं
  • खाली स्ट्रिंग नहीं ("")


5

यदि आप पूरे पुस्तकालय को शामिल नहीं करना चाहते हैं; बस उस कोड को शामिल करें जो आप इससे चाहते हैं। आपको इसे स्वयं बनाए रखना होगा; लेकिन यह एक बहुत सीधे आगे का कार्य है। यहां इसे commons.apache.org से कॉपी किया गया है

    /**
 * <p>Checks if a String is whitespace, empty ("") or null.</p>
 *
 * <pre>
 * StringUtils.isBlank(null)      = true
 * StringUtils.isBlank("")        = true
 * StringUtils.isBlank(" ")       = true
 * StringUtils.isBlank("bob")     = false
 * StringUtils.isBlank("  bob  ") = false
 * </pre>
 *
 * @param str  the String to check, may be null
 * @return <code>true</code> if the String is null, empty or whitespace
 * @since 2.0
 */
public static boolean isBlank(String str) {
    int strLen;
    if (str == null || (strLen = str.length()) == 0) {
        return true;
    }
    for (int i = 0; i < strLen; i++) {
        if ((Character.isWhitespace(str.charAt(i)) == false)) {
            return false;
        }
    }
    return true;
}

5

यह थोड़ा बहुत देर हो चुकी है, लेकिन यहाँ जाँच की एक कार्यात्मक शैली है:

Optional.ofNullable(str)
    .filter(s -> !(s.trim().isEmpty()))
    .ifPresent(result -> {
       // your query setup goes here
    });

1
मैं ट्रिम के लिए एक मानचित्र का उपयोग करने की सलाह दूंगा जैसे: Optional.ofNullable (str) .map (स्ट्रिंग :: ट्रिम) .filter (स्ट्रिंग :: isEmpty) .ifPresent (यह :: setStringMethod);
बाचफ

5

में एक नई विधि है : String#isBlank

यदि स्ट्रिंग खाली है या केवल सफेद स्थान कोडपॉइंट्स हैं, तो सत्य है, अन्यथा गलत।

jshell> "".isBlank()
$7 ==> true

jshell> " ".isBlank()
$8 ==> true

jshell> " ! ".isBlank()
$9 ==> false

यह Optionalजाँचने के लिए जोड़ा जा सकता है कि क्या स्ट्रिंग अशक्त या खाली है

boolean isNullOrEmpty = Optional.ofNullable(str).map(String::isBlank).orElse(true);

स्ट्रिंग # ISBLANK


3

एक ही स्थिति में एक खाली स्ट्रिंग और नल के साथ परीक्षण बराबर होता है:

if(!"".equals(str) && str != null) {
    // do stuff.
}

NullPointerExceptionअगर तीर अशक्त है तो फेंकता नहीं है , क्योंकि Object.equals()अर्ग है तो गलत है null

अन्य निर्माण str.equals("")खूंखार हो जाएगा NullPointerException। कुछ स्ट्रिंग स्ट्रिंग शाब्दिक का उपयोग करते हुए खराब फॉर्म पर विचार कर सकते हैं क्योंकि ऑब्जेक्ट को वीच equals()कहा जाता है लेकिन यह काम करता है।

इस उत्तर को भी देखें: https://stackoverflow.com/a/531825/1532705


1
इसलिए ऐड कभी भी कोड तक नहीं पहुंचा str != null!"".equals(str)पहले से ही काम करते हैं
amdev


2

जैसा कि सीनियर ने ऊपर कहा था, अपाचे स्ट्रिन्गटिल्स इसके लिए शानदार है, अगर आपको अमरूद को शामिल करना था तो आपको निम्नलिखित करना चाहिए;

public List<Employee> findEmployees(String str, int dep) {
 Preconditions.checkState(StringUtils.isNotBlank(str), "Invalid input, input is blank or null");
 /** code here **/
}

क्या मैं यह भी सिफारिश कर सकता हूं कि आप अपने परिणाम में कॉलम को इंडेक्स के बजाय नाम से सेट करें, इससे आपके कोड को बनाए रखने में काफी आसानी होगी।


अमरूद से अपाचे कॉमन्स का उपयोग करने की आवश्यकता नहीं है, हालांकि, अमरूद में स्ट्रिंग्स क्लास भी है: अमरूद- लाइब्रेरीज़ .googlecode.com
शॉन पैट्रिक फ़्लॉइड

मैंने नौसिखिए जावा उपयोगकर्ताओं के लिए कुछ अमरुद के उदाहरण जोड़े हैं जो इस प्रश्न पर उतरते हैं: stackoverflow.com/a/13146903/318174
एडम जेंट

2

मैंने अपना स्टेटमेंट यूटिलिटी फंक्शन बनाया है ताकि एक बार में कई स्टेटमेंट की जांच की जा सके, बजाए कि अगर कोई स्टेटमेंट भरा हुआ है if(str != null && !str.isEmpty && str2 != null && !str2.isEmpty)। यह समारोह है:

public class StringUtils{

    public static boolean areSet(String... strings)
    {
        for(String s : strings)
            if(s == null || s.isEmpty)
                return false;

        return true;
    }   

}

इसलिए मैं बस लिख सकता हूं:

if(!StringUtils.areSet(firstName,lastName,address)
{
    //do something
}

2
हस्ताक्षर का उपयोग करने के लिए अच्छा होगा: areSet(String... strings)फिर सरणी निर्माण के बिना लागू किया जा सकता है:if(!StringUtils.areSet(firstName, lastName, address))
वेस्टन

2

यदि आप जावा 8 का उपयोग कर रहे हैं और अधिक कार्यात्मक प्रोग्रामिंग दृष्टिकोण रखना चाहते हैं, Functionतो आप नियंत्रण को परिभाषित कर सकते हैं और तब आप इसे पुन: उपयोग कर सकते हैं और apply()जब भी आवश्यकता हो।

अभ्यास के लिए आ रहा है, आप के Functionरूप में परिभाषित कर सकते हैं

Function<String, Boolean> isNotEmpty = s -> s != null && !"".equals(s)

फिर, आप इसे apply()विधि के रूप में कॉल करके इसका उपयोग कर सकते हैं :

String emptyString = "";
isNotEmpty.apply(emptyString); // this will return false

String notEmptyString = "StackOverflow";
isNotEmpty.apply(notEmptyString); // this will return true

यदि आप चाहें, तो आप एक परिभाषित कर सकते हैं Function चेक कि Stringक्या खाली है और फिर इसके साथ नकारात्मक है !

इस मामले में, Function जैसा दिखेगा:

Function<String, Boolean> isEmpty = s -> s == null || "".equals(s)

फिर, आप इसे apply()विधि के रूप में कॉल करके इसका उपयोग कर सकते हैं :

String emptyString = "";
!isEmpty.apply(emptyString); // this will return false

String notEmptyString = "StackOverflow";
!isEmpty.apply(notEmptyString); // this will return true

जब मैं प्रदर्शन लागत या साइड-इफेक्ट्स के बारे में चिंतित हूं, और हाथ से आसानी से कोई आयात नहीं करता हूं, तो मुझे यह पसंद है।
david.pfx

2

साथ जावा 8 वैकल्पिक आप कर सकते हैं:

public Boolean isStringCorrect(String str) {
    return Optional.ofNullable(str)
            .map(String::trim)
            .map(string -> !str.isEmpty())
            .orElse(false);
}

इस अभिव्यक्ति में, आप उन Stringएस को संभाल लेंगे जो रिक्त स्थान से मिलकर होते हैं।


1

आप StringUtils.isEmpty () का उपयोग कर सकते हैं, यह सच होगा यदि स्ट्रिंग या तो रिक्त या रिक्त है।

 String str1 = "";
 String str2 = null;

 if(StringUtils.isEmpty(str)){
     System.out.println("str1 is null or empty");
 }

 if(StringUtils.isEmpty(str2)){
     System.out.println("str2 is null or empty");
 }

में परिणाम होगा

str1 शून्य या रिक्त है

str2 अशक्त या खाली है


या बस का उपयोग करेंisNotBlank
ब्रायन

1

मैं आपकी वास्तविक आवश्यकता के अनुसार अमरूद या अपाचे कॉमन्स को सलाह दूंगा। मेरे उदाहरण कोड में विभिन्न व्यवहारों की जाँच करें:

import com.google.common.base.Strings;
import org.apache.commons.lang.StringUtils;

/**
 * Created by hu0983 on 2016.01.13..
 */
public class StringNotEmptyTesting {
  public static void main(String[] args){
        String a = "  ";
        String b = "";
        String c=null;

    System.out.println("Apache:");
    if(!StringUtils.isNotBlank(a)){
        System.out.println(" a is blank");
    }
    if(!StringUtils.isNotBlank(b)){
        System.out.println(" b is blank");
    }
    if(!StringUtils.isNotBlank(c)){
        System.out.println(" c is blank");
    }
    System.out.println("Google:");

    if(Strings.isNullOrEmpty(Strings.emptyToNull(a))){
        System.out.println(" a is NullOrEmpty");
    }
    if(Strings.isNullOrEmpty(b)){
        System.out.println(" b is NullOrEmpty");
    }
    if(Strings.isNullOrEmpty(c)){
        System.out.println(" c is NullOrEmpty");
    }
  }
}

परिणाम:
Apache:
a a खाली
b है रिक्त
c है रिक्त c है
Google:
b NullOrEmpty
c है NullOrEmpty


1

यदि आप स्प्रिंग बूट का उपयोग कर रहे हैं तो नीचे दिया गया कोड काम करेगा

StringUtils.hasLength(str)

0

पूर्णता के लिए: यदि आप पहले से ही स्प्रिंग फ्रेमवर्क का उपयोग कर रहे हैं , तो स्ट्रिंगट्रिल्स विधि प्रदान करता है

org.springframework.util.StringUtils.hasLength(String str)

रिटर्न: सच है अगर स्ट्रिंग अशक्त नहीं है और लंबाई है

साथ ही विधि

org.springframework.util.StringUtils.hasText(String str)

रिटर्न: सच है अगर स्ट्रिंग शून्य नहीं है, तो इसकी लंबाई 0 से अधिक है, और इसमें केवल व्हाट्सएप नहीं है


हम StringUtils.isEmpty (परम) विधि का उपयोग कर सकते हैं।
सुपुन धर्मरत्ने

0

बस, सफेद स्थान को नजरअंदाज करने के लिए:

if (str == null || str.trim().length() == 0) {
    // str is empty
} else {
    // str is not empty
}

0

यदि आप स्प्रिंग फ्रेमवर्क का उपयोग करते हैं तो आप विधि का उपयोग कर सकते हैं:

org.springframework.util.StringUtils.isEmpty(@Nullable Object str);

यह विधि किसी भी ऑब्जेक्ट को तर्क के रूप में स्वीकार करती है, इसकी तुलना शून्य और खाली स्ट्रिंग से करती है। नतीजतन, यह विधि एक गैर-शून्य गैर-स्ट्रिंग ऑब्जेक्ट के लिए कभी भी सही नहीं लौटेगी।


1
ध्यान दें कि दस्तावेज़ में StringUtilsस्पष्ट रूप से लिखा गया है "मुख्य रूप से ढांचे के भीतर आंतरिक उपयोग के लिए; स्टर्लिंग उपयोगिताओं के अधिक व्यापक सूट के लिए अपाचे के कॉमन्स लैंग पर विचार करें।"
फ्रेड्रिक जोंसन


0

यह जांचने के लिए कि क्या किसी ऑब्जेक्ट में सभी स्ट्रिंग विशेषताएँ खाली हैं (उपयोग करने के बजाय! = जावा प्रतीक्षा एप्रीकेशन दृष्टिकोण के बाद सभी फ़ील्ड नामों पर शून्य)

private String name1;
private String name2;
private String name3;

public boolean isEmpty()  {

    for (Field field : this.getClass().getDeclaredFields()) {
        try {
            field.setAccessible(true);
            if (field.get(this) != null) {
                return false;
            }
        } catch (Exception e) {
            System.out.println("Exception occurred in processing");
        }
    }
    return true;
}

यदि स्ट्रिंग के सभी मान रिक्त हैं, तो यह विधि सही लौटेगी, यदि स्ट्रिंग का कोई भी मान मौजूद है तो यह गलत हो जाएगा


0

मुझे ऐसी स्थिति का सामना करना पड़ा है जहाँ मुझे जाँच करनी चाहिए कि "null" (एक स्ट्रिंग के रूप में) को खाली माना जाना चाहिए। इसके अलावा सफेद स्थान और एक वास्तविक अशक्त को वापस लौटना चाहिए। मैं अंत में निम्नलिखित समारोह पर बस गया हूँ ...

public boolean isEmpty(String testString) {
  return ((null==testString) || "".equals((""+testString).trim()) || "null".equals((""+testString).toLowerCase()));
}

0

यदि आपको अपनी विधि के मापदंडों को मान्य करने की आवश्यकता है, तो आप सरल विधि का उपयोग कर सकते हैं

public class StringUtils {

    static boolean anyEmptyString(String ... strings) {
        return Stream.of(strings).anyMatch(s -> s == null || s.isEmpty());
    }

}

उदाहरण:

public String concatenate(String firstName, String lastName) {
    if(StringUtils.anyBlankString(firstName, lastName)) {
        throw new IllegalArgumentException("Empty field found");
    }
    return firstName + " " + lastName;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.