"हाय, अमीगो!"

"जहाँ तक मुझे पता है, ऋषि आपको पहले ही रेगुलर एक्सप्रेशन के बारे में बता चुके हैं।"

"हाँ, यह बहुत दिलचस्प था।"

"बहुत बढ़िया, अब मैं आपको स्ट्रिंग्स के साथ काम करने के लिए रेगुलर एक्सप्रेशन का उपयोग करने के बारे में बताता हूँ।"

"आइए सबसे सरल प्रश्न से शुरू करें:"

1) मैं यह देखने के लिए कैसे जांच करूं कि कोई स्ट्रिंग रेगुलर एक्सप्रेशन द्वारा निर्दिष्ट पैटर्न से मेल खाता है या नहीं?

"इसके लिए एक मिलान विधि है। आप एक स्ट्रिंग पास करते हैं जिसमें नियमित अभिव्यक्ति होती है, और विधि सही या गलत होती है।"

विधि उदाहरण)
boolean matches(String regex)
String s = "Good news, everyone!";
Boolean test = s.matches("news\\.*");
परिणाम:

false (the String doesn't start with "news")

2) मैं सभी मेल खाने वाले सबस्ट्रिंग्स को अलग-अलग स्ट्रिंग्स से कैसे बदलूं?

"इसके लिए दो तरीके हैं।"

" ReplaceAll विधि एक सबस्ट्रिंग की सभी घटनाओं को दूसरी स्ट्रिंग से बदल देती है।"

" रिप्लेसफर्स्ट विधि एक निर्दिष्ट स्ट्रिंग के साथ पास की गई सबस्ट्रिंग की पहली घटना को बदल देती है।"

विधि उदाहरण)
String replaceAll(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceAll ("e\\.","EX");
परिणाम:

s2 == "Good nEXs EXEXyonEX";
String replaceFirst(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceFirst("e\\.","EX");
परिणाम:

s2 == "Good nEXs, everyone!";

3) मैं एक स्ट्रिंग को भागों में कैसे विभाजित करूं?

"इसके लिए, हमारे पास विभाजन विधि है, जो परिसीमन मुखौटा लेती है:"

विधि उदाहरण)
String[] split(String regex)
String s = "Good news everyone!";
String[] ss = s.split("ne");
System.out.println(Arrays.toString(ss));
परिणाम (तीन तार की एक सरणी):

[Good , ws everyo, !]
"Good ", "ws everyo", "!";

" स्ट्रिंगटोकनाइज़र क्लास स्ट्रिंग को भागों में विभाजित करने का एक और तरीका है ।"

"यह वर्ग नियमित अभिव्यक्तियों का उपयोग नहीं करता है। इसके बजाय, आप बस एक स्ट्रिंग में सीमांकक के एक सेट से गुजरते हैं। इस दृष्टिकोण का लाभ यह है कि यह पूरे स्ट्रिंग को एक साथ टुकड़ों में नहीं तोड़ता है, बल्कि यह धीरे-धीरे आगे बढ़ता है। शुरुआत से अंत तक।"

"क्लास में एक कंस्ट्रक्टर और दो विधियाँ होती हैं। आपको उस स्ट्रिंग को पास करने की आवश्यकता होती है जिसे हम कंस्ट्रक्टर में अलग कर रहे हैं, साथ ही एक स्ट्रिंग जिसमें परिसीमन वर्णों का सेट होता है।"

अगली टोकन विधि अगला टोकन (सबस्ट्रिंग) लौटाती है।

hasMoreTokens() विधि सत्य लौटाती है यदि अभी भी ऐसे सबस्ट्रिंग हैं जो अभी तक वापस नहीं किए गए हैं।

विधि उदाहरण)
boolean hasMoreTokens()

String nextToken()
String s = "Good news, everyone!";

StringTokenizer tokenizer =
new StringTokenizer(s,"ne");
while (tokenizer.hasMoreTokens())
{
String token = tokenizer.nextToken();
System.out.println(token);
}
स्क्रीन आउटपुट:

Good
ws
v
ryo
!

"ध्यान दें कि StringTokenizer कन्स्ट्रक्टर को पास किए गए दूसरे स्ट्रिंग में किसी भी वर्ण को डिलीमीटर के रूप में माना जाता है।"

"एक बार फिर, सब कुछ स्पष्ट प्रतीत होता है। हो सकता है कि मैं तुरंत इस कोड को स्वयं लिखने में सक्षम न हो पाऊं, लेकिन मैं समझता हूं कि यहां क्या हो रहा है।"

"बहुत बढ़िया, तब हम मान लेंगे कि आपने विषय में महारत हासिल कर ली है।"