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()স্ট্রিংয়ের প্রতিটি অক্ষর একটি সাদা স্থানের অক্ষর (বা স্ট্রিংটি খালি বা এটি নাল) che স্ট্রিং খালি কিনা তা যাচাই করার চেয়ে এটি সম্পূর্ণ আলাদা।

লিঙ্কযুক্ত ডকুমেন্টেশন থেকে:

কোনও স্ট্রিং সাদা জায়গা, খালি ("") বা নাল কিনা তা পরীক্ষা করে।

 StringUtils.isBlank(null)      = true
 StringUtils.isBlank("")        = true  
 StringUtils.isBlank(" ")       = true  
 StringUtils.isBlank("bob")     = false  
 StringUtils.isBlank("  bob  ") = false

স্ট্রিংইটিলস.আইএসপিটির তুলনা করার জন্য :

 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

স্ট্রিংইটিসস ইম্পটি = স্ট্রিং ইম্প্টি চেক + নাল জন্য চেক।

স্ট্রিংউটিলসটি হ'লব্লঙ্ক = স্ট্রিংইটিসস ইম্পটি চেক + চেক থাকলে পাঠ্যে কেবলমাত্র সাদা বর্ণচিহ্ন (অক্ষর) রয়েছে s

আরও তদন্তের জন্য দরকারী লিঙ্কগুলি:


14

StringUtils.isBlank() শূন্য জন্য পরীক্ষা করবে, যেখানে এটি:

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

নাল NullPointerExceptionহলে একটি নিক্ষেপ করবেfoo


4
এর চেয়ে বড় পার্থক্য আছে; আমার উত্তর দেখুন।
আরশাজি

3
এটি ভুল। String.isEmpty () এটি বাতিল হলে সত্যটি ফিরে আসবে। কমপক্ষে যদি আপনি apache.commons.lang সংস্করণ সম্পর্কে কথা বলছেন। আমি স্প্রিং সংস্করণ সম্পর্কে নিশ্চিত নই।
রিয়ং

1
আমার মন্তব্যের অর্থ দূরে সম্পাদনা করা হয়েছিল (নিখরচায় বলতে গেলে তা আরও পরিষ্কার করে বলা যেতে পারে); আমি স্ট্রিংগিলস.আইএসব্ল্যাঙ্ক () এর সাথে স্ট্রিংগটিস.আইএসপিটি () স্ট্রিংইটিলস.আইএসব্ল্যাঙ্ক () তুলনা করছিলাম না বরং ওপি'র মান.আইএসপিটি ()
চট

1
চট এর উত্তর সঠিক। জাভা স্ট্রিং ফু যদি নাল হয়, তবে foo.isEmpty () নালপয়েন্টার এক্সসেপশন ছুড়ে দেয়। অ্যাপাচি স্ট্রিংইটিলস.আইস ব্ল্যাঙ্ক (foo) foo শূন্য থাকলেও সত্য ফিরে আসে।
ব্যবহারকারী 2590805

6

StringUtils.isBlanktrueঠিক সাদা অংশের জন্যও ফিরে আসে :

isBlank (স্ট্রিং স্ট্র্যাম)

কোনও স্ট্রিং সাদা জায়গা, খালি ("") বা নাল কিনা তা পরীক্ষা করে।


5

StringUtils.isBlank(foo)আপনার জন্য একটি নাল চেক সঞ্চালন করবে। আপনি যদি পারফর্ম করেন foo.isEmpty()এবং fooনাল হন, আপনি একটি নালপয়েন্টার এক্সসেপশন উত্থাপন করবেন।


এর চেয়ে বড় পার্থক্য আছে; আমার উত্তর দেখুন।
আরশাজি

2

স্ট্রিংইটিলস.আইসব্ল্যাঙ্ক () ফাঁকা (কেবল শ্বেতস্থান) এবং নাল স্ট্রিংয়ের জন্যও সত্য দেয়। আসলে এটি চর ক্রমগুলি ছাঁটাই করে এবং তারপরে চেক করে।

স্ট্রিং প্যারামিটারে অক্ষর নেই বা স্ট্রিং প্যারামিটার শূন্য হলে স্ট্রিংগটিস.আইএসপিটি () সত্য দেয়। পার্থক্যটি হ'ল স্টেমিং প্যারামিটারে কেবল হুইলস্পেস থাকে তবে ইম্পটি () মিথ্যা দেয়। এটি হোয়াইটস্পেসগুলিকে খালি নয় এমন অবস্থা হিসাবে বিবেচনা করে।


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

আমি এর উত্তর দিচ্ছি কারণ এটি "স্ট্রিং ইসব্ল্যাঙ্ক () পদ্ধতি" এর জন্য গুগলের শীর্ষ ফলাফল।

আপনি যদি জাভা 11 বা ততোধিক ব্যবহার করছেন তবে আপনি স্ট্রিং ক্লাস isBlank () পদ্ধতি ব্যবহার করতে পারেন । এই পদ্ধতিটি অ্যাপাচি কমন্স স্ট্রিংআপিলস শ্রেণীর মতো একই কাজ করে।

আমি এই পদ্ধতির উদাহরণগুলিতে একটি ছোট পোস্ট লিখেছি, এটি এখানে পড়ুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.