Codegym यूनिवर्सिटी कोर्स के भाग के रूप में एक परामर्शदाता के साथ एक व्याख्यान स्निपेट। पूर्ण पाठ्यक्रम के लिए साइन अप करें।


1 तारों की तुलना करना

स्ट्रिंग्स के साथ सबसे आम ऑपरेशनों में से एक तुलना है। स्ट्रिंग क्लास में दस से अधिक अलग-अलग तरीके हैं जिनका उपयोग एक स्ट्रिंग की दूसरी स्ट्रिंग से तुलना करने के लिए किया जाता है। नीचे हम उनमें से 8 मुख्य बातों पर एक नज़र डालेंगे।

तरीकों विवरण
boolean equals(String str)
स्ट्रिंग्स को समान माना जाता है यदि उनके सभी वर्ण मेल खाते हैं।
boolean equalsIgnoreCase(String str)
अक्षरों के मामले को अनदेखा करते हुए तारों की तुलना करता है (ध्यान नहीं देता कि वे अपरकेस या लोअरकेस हैं)
int compareTo(String str)
तार की तुलना करता है, स्ट्रिंग की शुरुआत से मेल खाने वाले वर्णों की संख्या लौटाता है।
public int compareToIgnoreCase(String str)
एक स्ट्रिंग की शुरुआत से मेल खाने वाले वर्णों की संख्या लौटाता है, केस को अनदेखा करता है
boolean regionMatches(int toffset, String str, int offset, int len)
तार के हिस्सों की तुलना करता है
boolean startsWith(String prefix)
जाँचता है कि क्या वर्तमान स्ट्रिंग स्ट्रिंग से शुरू होती हैprefix
boolean endsWith(String suffix)
जाँचता है कि क्या वर्तमान स्ट्रिंग स्ट्रिंग के साथ समाप्त होती हैsuffix

मान लीजिए कि आप एक प्रोग्राम लिखना चाहते हैं जो उपयोगकर्ता से फ़ाइल के पथ के लिए पूछता है और फिर उसके एक्सटेंशन के आधार पर फ़ाइल प्रकार की जांच करता है। ऐसे प्रोग्राम का कोड कुछ इस तरह दिख सकता है:

कोड टिप्पणियाँ
Scanner console = new Scanner(System.in);
String path = console.nextLine();

if (path.endsWith(".jpg") || path.endsWith(".jpeg"))
{
   System.out.println("This is a jpeg!");
}
else if (path.endsWith(".htm") || path.endsWith(".html"))
{
   System.out.println("This is an HTML page");
}
else if (path.endsWith(".doc") || path.endsWith(".docx"))
{
   System.out.println("This is a Word document");
}
else
{
   System.out.println("Unknown format");
}
एक Scannerवस्तु बनाएँ
कंसोल से एक पंक्ति पढ़ें

जांचें कि स्ट्रिंग pathदिए गए स्ट्रिंग के साथ समाप्त होती है या नहीं


2 सबस्ट्रिंग्स की खोज

स्ट्रिंग्स की तुलना करने के बाद, दूसरा सबसे लोकप्रिय ऑपरेशन एक स्ट्रिंग को दूसरे के अंदर ढूंढ रहा है। इसके लिए स्ट्रिंग क्लास में भी कुछ तरीके हैं:

तरीकों विवरण
int indexOf(String str)
strवर्तमान स्ट्रिंग में स्ट्रिंग की खोज करता है । पहली घटना के पहले वर्ण का सूचकांक लौटाता है।
int indexOf(String str, int index)
strवर्तमान स्ट्रिंग में स्ट्रिंग की खोज करता है , पहले indexवर्णों को छोड़ देता है। घटना का सूचकांक लौटाता है।
int lastIndexOf(String str)
strअंत से शुरू करते हुए, वर्तमान स्ट्रिंग में स्ट्रिंग की खोज करता है । पहली घटना का सूचकांक लौटाता है।
int lastIndexOf(String str, int index)
पहले वर्णों को strछोड़ते हुए अंत से वर्तमान स्ट्रिंग में स्ट्रिंग की खोज करता है ।index
boolean matches(String regex)
जाँचता है कि क्या वर्तमान स्ट्रिंग रेगुलर एक्सप्रेशन द्वारा निर्दिष्ट पैटर्न से मेल खाती है।

और तरीकों का अक्सर संयोजन में उपयोग किया जाता है indexOf(String)indexOf(String, index)पहली विधि आपको वर्तमान स्ट्रिंग में पास की गई सबस्ट्रिंग की पहली घटना का पता लगाने देती है। और दूसरी विधि आपको पहले अनुक्रमणिका वर्णों को छोड़ कर दूसरी, तीसरी आदि घटनाओं को खोजने देती है।

मान लीजिए हमारे पास " https://domain.com/about/reviews " जैसा url है , और हम डोमेन नाम को " codegym.cc " से बदलना चाहते हैं। Urls में सभी प्रकार के अलग-अलग डोमेन नाम हो सकते हैं, लेकिन हम निम्नलिखित जानते हैं:

  • डोमेन नाम के पहले दो फ़ॉरवर्ड स्लैश होते हैं — "//"
  • डोमेन नाम के बाद एक सिंगल फ़ॉवर्ड स्लैश है — " /"

इस तरह के प्रोग्राम का कोड इस तरह दिखेगा:

कोड टिप्पणियाँ
Scanner console = new Scanner(System.in);
String path = console.nextLine();

int index = path.indexOf("//");
int index2 = path.indexOf("/", index + 2);

String first = path.substring(0, index + 2);
String last = path.substring(index2);

String result = first + "codegym.cc" + last;
System.out.println(result);
एक स्कैनर वस्तु बनाएँ
कंसोल से एक पंक्ति पढ़ें

स्ट्रिंग की पहली घटना का सूचकांक प्राप्त करें " //"
हम स्ट्रिंग की पहली घटना का सूचकांक प्राप्त करते हैं /, लेकिन केवल वर्णों की एक घटना के बाद देखते हैं //.
हम वर्णों के आरंभ से अंत तक स्ट्रिंग प्राप्त करते हैं //
हम स्ट्रिंग को /अंत से प्राप्त करते हैं।

हम स्ट्रिंग्स और नए डोमेन को जोड़ते हैं।

और विधियाँ उसी तरह काम करती हैं, केवल खोज स्ट्रिंग के अंत से शुरुआत तक की जाती है lastIndexOf(String)lastIndexOf(String, index)



3 सबस्ट्रिंग बनाना

Codegym यूनिवर्सिटी कोर्स के भाग के रूप में एक परामर्शदाता के साथ एक व्याख्यान स्निपेट। पूर्ण पाठ्यक्रम के लिए साइन अप करें।


स्ट्रिंग्स की तुलना करने और सबस्ट्रिंग खोजने के अलावा, एक और बहुत लोकप्रिय क्रिया है: स्ट्रिंग से सबस्ट्रिंग प्राप्त करना। जैसा कि होता है, पिछले उदाहरण ने आपको एक substring()विधि कॉल दिखाई जो एक स्ट्रिंग का हिस्सा लौटाती है।

यहां 8 विधियों की सूची दी गई है जो वर्तमान स्ट्रिंग से सबस्ट्रिंग लौटाती हैं:

तरीकों विवरण
String substring(int beginIndex, int endIndex)
इंडेक्स रेंज द्वारा निर्दिष्ट सबस्ट्रिंग देता है beginIndex..endIndex
String repeat(int count)
वर्तमान स्ट्रिंग को n बार दोहराता है
String replace(char oldChar, char newChar)
एक नया स्ट्रिंग लौटाता है: वर्ण को oldCharवर्ण से बदल देता हैnewChar
String replaceFirst(String regex, String replacement)
वर्तमान स्ट्रिंग में रेगुलर एक्सप्रेशन द्वारा निर्दिष्ट पहले सबस्ट्रिंग को प्रतिस्थापित करता है।
public String replaceAll(String regex, String replacement)
मौजूदा स्ट्रिंग में रेगुलर एक्सप्रेशन से मेल खाने वाले सभी सबस्ट्रिंग को बदल देता है।
String toLowerCase()
स्ट्रिंग को लोअरकेस में कनवर्ट करता है
String toUpperCase()
स्ट्रिंग को अपरकेस में कनवर्ट करता है
String trim()
एक स्ट्रिंग के आरंभ और अंत में सभी रिक्त स्थान हटा देता है

यहाँ उपलब्ध विधियों का सारांश दिया गया है:

substring(int beginIndex, int endIndex)तरीका

विधि substringएक नया स्ट्रिंग लौटाती है जिसमें वर्तमान स्ट्रिंग में वर्ण शामिल होते हैं, जो कि वर्ण से शुरू होता है beginIndexऔर पर समाप्त होता है endIndex। जावा में सभी अंतरालों की तरह, सूचकांक वाला वर्ण endIndexअंतराल में शामिल नहीं है। उदाहरण:

कोड परिणाम
"Hellos".substring(0, 3);
"Hel"
"Hellos".substring(1, 4);
"ell"
"Hellos".substring(1, 6);
"ellos"
"Hellos".substring(1);
"ellos"

यदि endIndexपैरामीटर निर्दिष्ट नहीं है (जो संभव है), तो स्ट्रिंग के अंत में startIndex पर वर्ण से सबस्ट्रिंग लिया जाता है।

repeat(int n)तरीका

रिपीट मेथड केवल वर्तमान स्ट्रिंग nबार को दोहराता है। उदाहरण:

कोड परिणाम
"Hello".repeat(3);
"HelloHelloHello"
"Hello".repeat(2);
"HelloHello"
"Hello".repeat(1);
"Hello"
"Hello".repeat(0);
""

replace(char oldChar, char newChar)तरीका

विधि replace()एक नई स्ट्रिंग लौटाती है जिसमें सभी वर्णों को oldCharवर्ण से बदल दिया जाता है newChar। यह स्ट्रिंग की लंबाई नहीं बदलता है। उदाहरण:

कोड परिणाम
"Programming".replace('Z', 'z');
"Programming"
"Programming".replace('g', 'd');
"Prodrammind"
"Programming".replace('a', 'e');
"Progremming"
"Programming".replace('m', 'w');
"Prograwwing"

replaceFirst()और replaceAll()तरीके

विधि replaceAll()एक सबस्ट्रिंग की सभी घटनाओं को दूसरे के साथ बदल देती है। विधि replaceFirst()निर्दिष्ट सबस्ट्रिंग के साथ पास की गई सबस्ट्रिंग की पहली घटना को बदल देती है। प्रतिस्थापित की जाने वाली स्ट्रिंग नियमित अभिव्यक्ति द्वारा निर्दिष्ट की जाती है। हम जावा मल्टीथ्रेडिंग खोज में रेगुलर एक्सप्रेशन में तल्लीन होंगे।

उदाहरण:

कोड परिणाम
"Good news everyone!".replaceAll("e.", "EX");
"Good nEXs EXEXyonEX"
"Good news everyone!".replaceAll("o.", "-o-");
"G-o-d news every-o-e!"
"Good news everyone!".replaceFirst("e.", "EX");
"Good nEXs everyone!"
"Good news everyone!".replaceFirst("o.", "-o-");
"G-o-d news everyone!"

toLowerCase() and toUpperCase()तरीकों

Stringहमें इन तरीकों का पता तब चला जब हमने पहली बार क्लास के तरीकों को कॉल करना सीखा ।

trim()तरीका

विधि trim()एक स्ट्रिंग से अग्रणी और अनुगामी रिक्त स्थान को हटा देती है। एक स्ट्रिंग के अंदर मौजूद रिक्त स्थान को स्पर्श न करें (यानी शुरुआत या अंत में नहीं)। उदाहरण:

कोड परिणाम
"     ".trim();
""
"Hello".trim();
"Hello"
" Hello\n how are you?\n   ".trim();
"Hello\n how are you?\n"
"  Password\n   \n ".trim();
"Password\n   \n"