2009-03-26 12 views
13

मैं कैसे बता सकता हूं कि सबस्ट्रिंग "टेम्पलेट" (उदाहरण के लिए) स्ट्रिंग ऑब्जेक्ट के अंदर मौजूद है या नहीं?मैं कैसे देख सकता हूं कि जावा 1.4 में किसी अन्य स्ट्रिंग के अंदर कोई सबस्ट्रिंग मौजूद है या नहीं?

यह बहुत अच्छा होगा अगर यह केस-संवेदी जांच नहीं था।

उत्तर

11

एक रेगुलर एक्सप्रेशन का उपयोग करें और केस संवेदी के रूप में चिह्नित:

if (myStr.matches("(?i).*template.*")) { 
    // whatever 
} 

खोज शब्द मिलान के हर कोने पर मामले असंवेदनशीलता और चालू हो जाती है * (मैं?)। किसी भी आस-पास के पात्र (स्ट्रिंग.मैट्स संपूर्ण स्ट्रिंग पर काम करता है)।

+2

के ऊपरी चरण वाले संस्करण को स्टोर करना न भूलें, मुझे रीगेक्स से प्यार है, लेकिन उस मामले में थोड़ा सा ओवरकिल – siukurnin

+0

@CoverosGene जब मैंने यह कोड जोड़ने के लिए यह कोड जोड़ा मेरे jtable में कॉलम तो यह कोड सही काम करता है लेकिन एक मुद्दा है कि स्ट्रिंग बिट के शीर्ष तत्वों को खोजने के बजाय सबसे पहले तत्वों को खोजता है? क्या आप मुझे बता सकते हैं कि मैं क्या गलत कर रहा हूं ??? –

31

String.indexOf(String)

एक केस संवेदी खोज के लिए, toUpperCase या दोनों मूल स्ट्रिंग और) से पहले indexOf

String full = "my template string"; 
String sub = "Template"; 
boolean fullContainsSub = full.toUpperCase().indexOf(sub.toUpperCase()) != -1; 
+0

+1 और मैं अपना उत्तर हटा रहा हूं। प्रश्न के दोनों हिस्सों के लिए आपका बेहतर है। –

+0

बेशक यदि आप बहुत सारी तुलना करने की योजना बना रहे हैं तो वह सबसे अधिक इस्तेमाल किए गए स्ट्रिंग – siukurnin

3
indexOf

आप उपयोग कर सकते हैं-स्ट्रिंग (और toLowerCase() मामले करने के लिए पर toLowerCase को सबस्ट्रिंग के लिए संवेदनशील परीक्षण।

String string = "testword"; 
boolean containsTemplate = (string.toLowerCase().indexOf("template") >= 0); 
1
String word = "cat"; 
String text = "The cat is on the table"; 
Boolean found; 

found = text.contains(word); 
संबंधित मुद्दे

 संबंधित मुद्दे