मैं string.startsWith()विधि का उपयोग करना चाहता हूं लेकिन मामले की अनदेखी कर रहा हूं ।
मान लें कि मेरे पास String"सत्र" है और मैं startsWith"sEsSi" का उपयोग करता हूं तो इसे वापस आ जाना चाहिए true।
इसे कैसे प्राप्त किया जा सकता है?
मैं string.startsWith()विधि का उपयोग करना चाहता हूं लेकिन मामले की अनदेखी कर रहा हूं ।
मान लें कि मेरे पास String"सत्र" है और मैं startsWith"sEsSi" का उपयोग करता हूं तो इसे वापस आ जाना चाहिए true।
इसे कैसे प्राप्त किया जा सकता है?
जवाबों:
परीक्षण करने से पहले अपनी स्ट्रिंग का उपयोग toUpperCase()या toLowerCase()मानकीकरण करें।
String.equalsIgnoreCase()आपको लगता है कि आप की तुलना करने की जरूरत है पता चल जाएगा दोनों लोअरकेस और स्ट्रिंग्स का अपरकेस संस्करण इससे पहले कि आप अंतिम तौर लौट सकते हैं false। वैकल्पिक उत्तर के लिए stackoverflow.com/a/38947571/14731 देखें ।
"İstanbul".toLowerCase().startsWith("istanbul".toLowerCase())(एक लोकेल.टिकी माहौल में), तो यह मुझे गलत साबित करेगा।
एक विकल्प यह है कि उन दोनों को या तो लोअरकेस या अपरकेस में परिवर्तित करें:
"Session".toLowerCase().startsWith("sEsSi".toLowerCase());
ये गलत है। देखें: https://stackoverflow.com/a/15518878/14731
एक अन्य विकल्प String#regionMatches()विधि का उपयोग करना है, जो बूलियन तर्क को बताता है कि केस-संवेदी मिलान करना है या नहीं। आप इसे इस तरह से उपयोग कर सकते हैं:
String haystack = "Session";
String needle = "sEsSi";
System.out.println(haystack.regionMatches(true, 0, needle, 0, 5)); // true
यह जाँच करता है कि क्या के क्षेत्र needleसूचकांक से 0तक की लंबाई 5में मौजूद है haystackसूचकांक से शुरू 0लंबाई तक 5या नहीं। पहला तर्क trueयह है कि यह केस-असंवेदनशील मिलान करेगा।
और अगर आप केवल रेगेक्स के बड़े प्रशंसक हैं , तो आप कुछ इस तरह से कर सकते हैं:
System.out.println(haystack.matches("(?i)" + Pattern.quote(needle) + ".*"));
(?i) एंबेडेड फ्लैग केस मैचिंग को नजरअंदाज करने के लिए है।
System.out.println("Session".toLowerCase().startsWith("sEsSi".toLowerCase()));समाधान नहीं है। आप इसे आज़मा सकते हैं: System.out.println("SessIon".toLowerCase().startsWith("sEsSi".toLowerCase()));vm तर्कों के साथ -Duser.country=TR -Duser.language=tr इस उदाहरण में Iअपरकेस हैi
इसे इस्तेमाल करे,
String session = "Session";
if(session.toLowerCase().startsWith("sEsSi".toLowerCase()))
मुझे पता है कि मुझे देर हो गई है, लेकिन अपाचे कॉमन्स लैंग 3 से StringUtils.startsWithIgnoreCase () का उपयोग करने के बारे में क्या?
उदाहरण :
StringUtils.startsWithIgnoreCase(string, "start");
बस अपनी निर्भरता को अपने pom.xml फ़ाइल में जोड़ें (परिकल्पना का उपयोग करें जो आप मावेन का उपयोग करते हैं):
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
आप उपयोग कर सकते हैं someString.toUpperCase().startsWith(someOtherString.toUpperCase())
string.regionMatches(true, 0, prefix, 0, prefix.length());है कि दोनों तारों को "सामान्य" करने की लागत का उपयोग न करें।