java - जावा, यदि सूची में स्ट्रिंग शामिल है, तो वापस लौटें




arrays string (4)

आप इसे regex का उपयोग करके एक ही पंक्ति में कर सकते हैं:

if (myList.toString().matches(".*\\bA\\b.*"))

इस कोड को काफी अच्छा प्रदर्शन करना चाहिए।

BTW, आप इस तरह से एक चर से regex का निर्माण कर सकते हैं:

.matches("\\[.*\\b" + word + "\\b.*]")

मैंने एक गलत सकारात्मक मिलान को रोकने के लिए प्रत्येक छोर पर [ और ] जोड़ा जब खोज शब्द में प्रारंभ / अंत में एक खुला / करीबी वर्ग ब्रैकेट होता है।

जावा में, मैं यह जांचना चाहता हूं कि क्या स्ट्रिंग List<String> myList में मौजूद है List<String> myList

कुछ इस तरह:

if(myList.contains("A")){
    //true
}else{
    // false
}

समस्या यह है कि myList में अन-ट्रिम डेटा हो सकता है:

{'  A', 'B  ', '  C  '}

मैं चाहता हूं कि यदि मेरा आइटम 'B' सूची में है, तो यह सच है। मुझे यह कैसे करना चाहिए? मैं एक लूपिंग संरचना से बचना चाहूंगा।


आप ऐसा करने के लिए एक अनुमानित स्ट्रिंग मिलान लाइब्रेरी का उपयोग करने में सक्षम हो सकते हैं, उदाहरण के लिए SecondString , लेकिन यह लगभग निश्चित रूप से ओवरकिल है - इसके बजाय प्रदान किए गए फॉर-लूप उत्तरों में से एक का उपयोग करें।


इसे इस्तेमाल करे:

for(String str: myList) {
    if(str.trim().equals("A"))
       return true;
}
return false;

आपको contains होने के बजाय str.equals या str.equalsIgnoreCase का उपयोग करने की आवश्यकता है क्योंकि string कार्यों में List में contains समान नहीं हैं।

List<String> s = Arrays.asList("BAB", "SAB", "DAS");
s.contains("A"); // false
"BAB".contains("A"); // true

जावा 8 स्ट्रीम एपीआई के साथ:

List<String> myList = Arrays.asList("  A", "B  ", "  C  ");
return myList.stream().anyMatch(str -> str.trim().equals("B"));




list