कोडजिम युनिव्हर्सिटी कोर्सचा एक भाग म्हणून मार्गदर्शकासह व्याख्यान स्निपेट. पूर्ण अभ्यासक्रमासाठी साइन अप करा.


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 सबस्ट्रिंग तयार करणे

कोडजिम युनिव्हर्सिटी कोर्सचा एक भाग म्हणून मार्गदर्शकासह व्याख्यान स्निपेट. पूर्ण अभ्यासक्रमासाठी साइन अप करा.


स्ट्रिंग्सची तुलना आणि सबस्ट्रिंग्स शोधण्याव्यतिरिक्त, आणखी एक अतिशय लोकप्रिय क्रिया आहे: स्ट्रिंगमधून सबस्ट्रिंग मिळवणे. जसे होते तसे, मागील उदाहरणाने तुम्हाला 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. Java मधील सर्व मध्यांतरांप्रमाणे, इंडेक्ससह वर्ण endIndexमध्यांतरात समाविष्ट केलेला नाही. उदाहरणे:

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

जर endIndexपॅरामीटर निर्दिष्ट केले नसेल (जे शक्य आहे), तर सबस्ट्रिंग सुरुवातीच्या इंडेक्समधील अक्षरापासून स्ट्रिंगच्या शेवटी घेतले जाते.

repeat(int n)पद्धत

पुनरावृत्ती पद्धत फक्त वर्तमान स्ट्रिंग nवेळा पुनरावृत्ती करते. उदाहरण:

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

replace(chat 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"