"तुम्हाला काय वाटते, अमिगो? int नंतर सर्वात लोकप्रिय जावा वर्ग कोणता आहे?"

"तू मला धड्याच्या शीर्षकात आधीच एक स्पॉयलर दिला आहे, एली. हे आहे String!"

"खरंच, हे एक बिघडवणारे आहे. Stringपूर्णपणे सर्वत्र वापरले जाते. त्यात अनेक उपयुक्त पद्धती आहेत ज्या तुम्हाला जाणून घेणे अधिक चांगले आहे.

" Stringवर्ग हा आदिम प्रकारांव्यतिरिक्त एकमेव वर्ग आहे ज्याचे अक्षरे विधानात वापरले जाऊ शकतात switch; कंपायलर स्ट्रिंग अॅडिशन आणि स्ट्रिंग ऑब्जेक्ट्स एका विशिष्ट पद्धतीने हाताळतो; Stringऑब्जेक्ट्स एका विशिष्ट पद्धतीने मेमरीमध्ये संग्रहित केल्या जातात. मुळात, Stringवर्ग हा एक अत्यंत विशेष वर्ग.

"तसेच, Stringक्लासमध्ये हेल्पर क्लासेसचा एक समूह आहे ज्यांचा उद्देश Java मध्ये स्ट्रिंग्ससह काम करणे अधिक सोपे करणे आहे. जेव्हा तुम्ही हे सर्व शिकता, तेव्हा तुमच्यासाठी अनेक गोष्टी करणे खरोखर सोपे होईल."

"मी थांबू शकत नाही."

"ठीक आहे, आम्ही या इकोसिस्टमच्या अगदी गाभ्यापासून सुरुवात करू - वर्गाची संघटना String. वर्गाची रचना Stringप्रत्यक्षात अगदी सोपी आहे: त्याच्या आत एक वर्ण अॅरे ( charअॅरे) आहे जो स्ट्रिंगचे सर्व वर्ण संग्रहित करतो. उदाहरणार्थ, 'हॅलो' हा शब्द कसा संग्रहित केला जातो:

स्ट्रिंग वर्गाची रचना

हे महत्वाचे आहे.

खरं तर, हे अगदी अचूक नाही. वर्ग अतिशय महत्त्वाचा असल्यामुळे String, तो भरपूर ऑप्टिमायझेशन वापरतो, आणि डेटा आंतरिकरित्या कॅरेक्टर अॅरे म्हणून नाही तर फक्त बाइट अॅरे म्हणून संग्रहित केला जातो.

स्ट्रिंग वर्गाच्या पद्धती

वर्गात Stringबर्‍याच पद्धती आहेत: त्यात एकट्या 18 कन्स्ट्रक्टर आहेत! तर, खाली मी फक्त सर्वात जास्त वापरल्या जाणार्‍यांची यादी करेन:

पद्धती वर्णन
int length()
स्ट्रिंगमधील वर्णांची संख्या मिळवते
boolean isEmpty()
स्ट्रिंग रिक्त स्ट्रिंग आहे का ते तपासते
boolean isBlank()
स्ट्रिंगमध्ये फक्त व्हाइटस्पेस वर्ण आहेत हे तपासते: स्पेस, टॅब, नवीन ओळ इ.
char charAt(int index)
स्ट्रिंगमधील अनुक्रमणिका स्थानावर वर्ण मिळवते.
char[] toCharArray()
स्ट्रिंग बनवणाऱ्या वर्णांचा अॅरे (एक प्रत) मिळवते
byte[] getBytes()
स्ट्रिंगला बाइट्सच्या सेटमध्ये रूपांतरित करते आणि बाइट्सचा अॅरे मिळवते.
String[] split(String regex)
स्ट्रिंगला एकाधिक सबस्ट्रिंगमध्ये विभाजित करते.
String join(CharSequence delimiter, elements)
एकाधिक सबस्ट्रिंग एकत्र जोडते
String intern()
स्ट्रिंग पूलमध्ये स्ट्रिंग ठेवते.

"खूप छान दिसतंय!"

"चला एक प्रोग्राम लिहू जो फाईल पाथला युनिक्स स्टाईल मधून विंडोज स्टाईलमध्ये रूपांतरित करतो. युनिक्स /फोल्डर वेगळे करण्यासाठी कॅरेक्टर वापरतो, तर विंडोज कॅरेक्टर वापरतो \.

उपाय 1.char अॅरे वापरणे

कोड नोट्स
Scanner console = new Scanner(System.in);
String path = console.nextLine();

char[] chars = path.toCharArray();
for (int i = 0; i < chars.length; i++)
   if (chars[i] == '/')
      chars[i] = '\\';

String result = new String(chars);
System.out.println(result);
स्कॅनर ऑब्जेक्ट तयार करा
कन्सोलमधून एक ओळ वाचा

स्ट्रिंगला कॅरेक्टर अॅरेमध्ये रूपांतरित करा
अक्षरांवर लूप करा
वर्ण असल्यास /,
त्यास बदला \. पळून जाण्याबद्दल विसरू नका.

वर्ण अॅरेवर आधारित नवीन स्ट्रिंग तयार करा.
स्ट्रिंग प्रदर्शित करा.

उपाय 2.split() आणि पद्धती वापरणे join():

कोड नोट्स
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String array[] = path.split("\\/");


String result = String.join("\\", array);


System.out.println(result);
स्कॅनर ऑब्जेक्ट तयार करा
कन्सोलमधून एक ओळ वाचा स्ट्रिंगला स्ट्रिंगच्या अॅरेमध्ये

रूपांतरित करा . वर्ण विभाजक म्हणून वापरला जातो (अतिरिक्त दोन स्लॅश हे दुहेरी सुटण्याचा परिणाम आहेत). स्ट्रिंगच्या अॅरेमधील सर्व स्ट्रिंग्स एकत्र करा . विभाजक म्हणून वापरला जातो (आम्ही ते निसटलेले पाहतो) . स्ट्रिंग प्रदर्शित करा./
\

उपाय 3. पद्धत वापरणे replace(char oldChar, char newChar):

कोड नोट्स
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String result = path.replace('/', '\\');

System.out.println(result);
एक स्कॅनर ऑब्जेक्ट तयार करा
कन्सोलमधून एक ओळ वाचा

फक्त एक वर्ण दुसर्याने बदला
(दुसरा एस्केप केलेला आहे)
स्ट्रिंग प्रदर्शित करा.

"मला तिसरा उपाय सर्वात जास्त आवडला. पण मी तिन्ही सराव करेन."

"शाबास, अमिगो. मला दिसत आहे की तुम्ही तुमचे नवीन ज्ञान प्रत्यक्षात आणण्यासाठी अधीर आहात. धडा संपला आहे."