Follow Us
माध्यम चुनें / Select Medium:
Eng (English) Hindi (हिन्दी)
ICSE • कक्षा X • Information Technology • अध्याय 8
अनुमानित समय: 45 Mins
प्रगति: अध्ययनरत

स्ट्रिंग हैंडलिंग (String handling)

आईसीएसई कक्षा 10 के लिए जावा में स्ट्रिंग हैंडलिंग और हेरफेर पर विस्तृत मास्टरक्लास। स्ट्रिंग अपरिवर्तनीयता, स्ट्रिंग कॉन्स्टेंट पूल (एससीपी) बनाम हीप, सामग्री बनाम संदर्भ समानता (== बनाम बराबर), पूर्ण पुस्तकालय विधि विनिर्देश, पिग लैटिन, पैलिंड्रोम, वाक्य टोकननाइजेशन, वर्णमाला नाम सॉर्टिंग, और बोर्ड प्रोग्रामिंग समाधान।

यह अध्याय क्यों महत्वपूर्ण है

आईसीएसई कक्षा 10 के लिए जावा में स्ट्रिंग हैंडलिंग और हेरफेर पर विस्तृत मास्टरक्लास। स्ट्रिंग अपरिवर्तनीयता, स्ट्रिंग कॉन्स्टेंट पूल (एससीपी) बनाम हीप, सामग्री बनाम संदर्भ समानता (== बनाम बराबर), पूर्ण पुस्तकालय विधि विनिर्देश, पिग लैटिन, पैलिंड्रोम, वाक्य टोकननाइजेशन, वर्णमाला नाम सॉर्टिंग, और बोर्ड प्रोग्रामिंग समाधान।

अध्याय रूपरेखा एवं प्रगति

1 1. स्ट्रिंग अपरिवर्तनीयता और स्ट्रि...
2 2. स्ट्रिंग्स में समानता: '==' बनाम...
3 3. आवश्यक स्ट्रिंग निष्कर्षण विधिया...
4 4. खोज, केस परिवर्तन और व्हाइटस्पेस...
5 5. परिवर्तनशील स्ट्रिंग विकल्प: स्ट...
6 6. क्लासिक आईसीएसई एल्गोरिथम 1: पैल...
7 7. संपूर्ण आईसीएसई बोर्ड कार्यक्रम:...
8 8. संपूर्ण आईसीएसई बोर्ड कार्यक्रम:...

सम्पूर्ण सैद्धांतिक एवं वैचारिक अध्ययन

1. स्ट्रिंग अपरिवर्तनीयता और स्ट्रिंग कॉन्स्टेंट पूल (एससीपी) आर्किटेक्चर

स्ट्रिंग अपरिवर्तनीयता
स्ट्रिंग्स की वास्तुशिल्प अपरिवर्तनीयता:

जावा में, स्ट्रिंग्स को java.lang.String वर्ग द्वारा दर्शाया जाता है। आदिम वर्णों के विपरीत, एक स्ट्रिंग ऑब्जेक्ट अपरिवर्तनीय है - इसके वर्ण सरणी को निर्माण के बाद संशोधित, आकार बदलने या अधिलेखित नहीं किया जा सकता है। कोई भी विधि जो स्ट्रिंग को संशोधित करती प्रतीत होती है (जैसे concat(), replace(), या toUpperCase()) मूल उदाहरण को नहीं बदलती है; यह ढेर पर पूरी तरह से नया स्ट्रिंग ऑब्जेक्ट आवंटित करता है और लौटाता है।

स्ट्रिंग कॉन्स्टेंट पूल (एससीपी) बनाम स्टैंडर्ड हीप:

रैम को संरक्षित करने के लिए, जेवीएम हीप मेमोरी में एक विशेष कैश का प्रबंधन करता है जिसे स्ट्रिंग कॉन्स्टेंट पूल (एससीपी):

कहा जाता है
  • लिटरल क्रिएशन (स्ट्रिंग एस1 = "इंडिया";): जेवीएम एससीपी की जांच करता है। यदि "INDIA" पहले से मौजूद है, तो कोई नई मेमोरी आवंटित नहीं की जाती है; s1 बस मौजूदा पूल किए गए उदाहरण का संदर्भ प्राप्त करता है।
  • कीवर्ड निर्माण (String s2 = new String("INDIA");): new ऑपरेटर SCP जांच को बायपास करता है और नियमित हीप मेमोरी में एक स्वतंत्र, विशिष्ट ऑब्जेक्ट को जबरन इंस्टेंट करता है।

2. स्ट्रिंग्स में समानता: '==' बनाम '.equals()' बनाम '.compareTo()'

स्ट्रिंग तुलना
स्ट्रिंग तुलना के तीन तरीके:
तुलना ऑपरेटर / विधितुलना मानदंडरिटर्न डेटा प्रकारउदाहरण और आउटपुट
== ऑपरेटर मेमोरी एड्रेस की तुलना करता है (चाहे दो संदर्भ बिल्कुल एक ही हीप ऑब्जेक्ट की ओर इशारा करते हों)। बूलियन s1 == s2 (पूल किए गए अक्षरों के लिए सत्य; new स्ट्रिंग्स के लिए गलत)
बूलियन बराबर(ऑब्जेक्ट obj) वास्तविक चरित्र अनुक्रम केस-संवेदी रूप से तुलना करता है। बूलियन "Apple"।बराबर("Apple") // true
"Apple".equals("apple") // false
बूलियन बराबरइग्नोरकेस(स्ट्रिंग एस) अपरकेस/लोअरकेस भेदों को अनदेखा करते हुए वर्ण अनुक्रम की तुलना करता है। बूलियन "Apple"।equalsIgnoreCase("apple") // true
int CompareTo(स्ट्रिंग s) लेक्सिकोग्राफ़िकल तुलना (पहले बेमेल वर्णों का ASCII घटाव) करता है। int ($<0, 0, >0$) "A"।compareTo("B") // रिटर्न -1
"C"।compareTo("A") // रिटर्न +2

3. आवश्यक स्ट्रिंग निष्कर्षण विधियाँ: charAt() और सबस्ट्रिंग()

निष्कर्षण विधियाँ
1. charAt(int सूचकांक):

निर्दिष्ट सूचकांक पर वर्ण लौटाता है ($0$ से $\text{length} - 1$).

स्ट्रिंग एस = "कंप्यूटर";
चार ch = s.charAt(3); // रिटर्न 'पी' (सूचकांक: 0:सी, 1:ओ, 2:एम, 3:पी)
2. सबस्ट्रिंग(इंट बिगिन्डेक्स):

एक नई स्ट्रिंग लौटाता है जिसमें beginIndex से लेकर स्ट्रिंग के अंत तक के अक्षर होते हैं।

स्ट्रिंग एस = "समझें";
स्ट्रिंग उप = s.सबस्ट्रिंग(5); // रिटर्न "स्टैंड" (सूचकांक 5 से 9)
3. सबस्ट्रिंग (इंट स्टार्ट इंडेक्स, इंट एंड इंडेक्स):
§25beginIndex (समावेशी) से प्रारंभ होकर endIndex - 1 (अनन्य) तक वर्ण निकालता है। endIndex पर वर्ण कभी शामिल नहीं है!

स्ट्रिंग एस = "अद्भुत";
स्ट्रिंग उप = s.सबस्ट्रिंग(0, 6); // रिटर्न "वंडर" (सूचकांक 0, 1, 2, 3, 4, 5)
सबस्ट्रिंग लंबाई के लिए फॉर्मूला: str.substring(a, b) की लंबाई हमेशा बिल्कुल $b - a$ होती है।

4. खोज, केस परिवर्तन और व्हाइटस्पेस ट्रिमिंग के तरीके

खोज एवं उपयोगिता विधियाँ
मानक उपयोगिता संचालन:
§115पुराना की सभी घटनाओं को नया. से बदल देता है से शुरू होती है के साथ समाप्त होती है
विधि हस्ताक्षरकार्यक्षमताउदाहरण कॉलरिटर्न आउटपुट
int IndexOf(char ch)
int IndexOf(String str)
वर्ण/उपस्ट्रिंग की पहली घटना का सूचकांक लौटाता है, या नहीं मिलने पर -1 लौटाता है। "मलयालम"।indexOf('A') 1
int LastIndexOf(char ch) चरित्र की अंतिम घटना का सूचकांक लौटाता है, या -1. "मलयालम"।lastIndexOf('A') 7
स्ट्रिंग टू लोअरकेस() सभी वर्णों को लोअरकेस में परिवर्तित करता है। "ICSE 2026"।toLowerCase() "आईसीएसई 2026"
String toUpperCase() सभी वर्णों को अपरकेस में परिवर्तित करता है। "java"।toUpperCase() "JAVA"
स्ट्रिंग ट्रिम() अग्रणी और अनुगामी स्थान वाली पट्टियाँ; आंतरिक स्थान संरक्षित. " लक्ष्य परीक्षाएँ ".trim() "लक्ष्य परीक्षा"
स्ट्रिंग रिप्लेस(चार पुराना, चार नया)"BANANA"।replace('A', 'O') "बोनोनो"
बूलियन प्रारंभ(स्ट्रिंग पी) जाँच करता है कि क्या स्ट्रिंग उपसर्ग p."पूर्वावलोकन"।शुरू होता है("पूर्व") सत्य
बूलियन एंडविथ(स्ट्रिंग एस) जाँच करता है कि क्या स्ट्रिंग प्रत्यय s."STUDENT.java"।endsWith("।java") सत्य

5. परिवर्तनशील स्ट्रिंग विकल्प: स्ट्रिंगबफ़र और स्ट्रिंगबिल्डर

परिवर्तनशील विकल्प
स्ट्रिंगबफ़र / स्ट्रिंगबिल्डर क्यों?

क्योंकि String अपरिवर्तनीय है, लूप के अंदर बार-बार संयोजन से हीप पर सैकड़ों छोड़े गए मध्यवर्ती ऑब्जेक्ट बनते हैं, जिससे प्रदर्शन ख़राब होता है। इसे हल करने के लिए, जावा दो परिवर्तनशील साथी वर्ग प्रदान करता है:

  • StringBuffer: बहु-थ्रेडेड वातावरण के लिए थ्रेड-सुरक्षित, सिंक्रनाइज़, थ्रेड-सुरक्षित।
  • स्ट्रिंगबिल्डर: गैर-सिंक्रनाइज़, तेज़ प्रदर्शन, एकल-थ्रेडेड एल्गोरिदम के लिए आदर्श।
स्ट्रिंगबिल्डर एसबी = नया स्ट्रिंगबिल्डर('जावा');
sb.append('प्रोग्रामिंग'); //स्थान में परिवर्तन करता है!
sb.रिवर्स();              // वर्ण क्रम को सीधे उलट देता है!
System.out.println(sb);    // मध्यवर्ती ऑब्जेक्ट बनाए बिना उलटी स्ट्रिंग प्रिंट करता है

6. क्लासिक आईसीएसई एल्गोरिथम 1: पैलिंड्रोम और विशेष वर्ड चेकर्स

बोर्ड एल्गोरिथम 1
पैलिंड्रोम शब्द बनाम विशेष शब्द:
  • पैलिंड्रोम वर्ड: आगे की तरह पीछे की ओर भी पढ़ता है (उदाहरण के लिए, MADAM, NITIN, RACECAR).
  • विशेष शब्द: बिल्कुल एक ही अक्षर से शुरू और समाप्त होता है (उदाहरण के लिए, WINDOW 'W' से शुरू होता है और 'W' पर समाप्त होता है; EXIST 'E' से शुरू और समाप्त होता है)।
// विशेष शब्द और पैलिंड्रोम मूल्यांकन
स्ट्रिंग w = "मैडम";
w = w.toUpperCase();

// 1. विशेष शब्द जाँच:
बूलियन isSpecial = (w.charAt(0) == w.charAt(w.length() - 1));

// 2. पैलिंड्रोम चेक:
स्ट्रिंग रेव = "";
के लिए (int i = w.length() - 1; i >= 0; i--) {
    रेव += w.charAt(i);
}
बूलियन isPalindrome = w.equals(rev);

System.out.println('विशेष शब्द :' + isSpecial);
System.out.println("Palindrome Word: " + isPalindrome);

7. संपूर्ण आईसीएसई बोर्ड कार्यक्रम: पिग लैटिन वर्ड ट्रांसलेटर

बोर्ड प्रोग्राम समाधान
मॉडल प्रोग्राम 1: पिग लैटिन अनुवाद एल्गोरिदम

पिग लैटिन परिभाषा: शब्द ($A, E, I, O, U$) में प्रथम स्वर का पता लगाकर एक शब्द को पिग लैटिन में परिवर्तित किया जाता है। उस स्वर से शब्द के अंत तक के सभी अक्षर पिग लैटिन शब्द की शुरुआत बनाते हैं, उसके बाद स्वर से पहले व्यंजन आते हैं, और अंत में "AY" के साथ प्रत्यय लगाया जाता है। यदि कोई स्वर नहीं मिलता है, तो "AY" को अंत में जोड़ दिया जाता है।

उदाहरण: "लंदन" → "ONDONLAY"; "मुसीबत" → "ओबलट्रे"; "खाओ" → "खाओ".

आयात java.util.स्कैनर;

सार्वजनिक वर्ग PigLatinTranslator {
    सार्वजनिक स्थैतिक शून्य मुख्य(स्ट्रिंग[] तर्क) {
        स्कैनर एससी = नया स्कैनर (System.in);
        System.out.print('एक शब्द दर्ज करें:');
        स्ट्रिंग शब्द = sc.next().toUpperCase();

        पूर्णांक स्वर सूचकांक = -1;
        के लिए (int i = 0; i < word.length(); i++) {
            char ch = word.charAt(i);
            if (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') {
                vowelIndex = i;
                break;
            }
        }

        String pigLatin;
        if (vowelIndex != -1) {
            pigLatin = word.substring(vowelIndex) + word.substring(0, vowelIndex) + "AY";
        } else {
            pigLatin = word + "AY";
        }

        System.out.println("Original Word : " + word);
        System.out.println("Pig Latin Word: " + pigLatin);
    }
}

8. संपूर्ण आईसीएसई बोर्ड कार्यक्रम: CompareTo() का उपयोग करके वर्णानुक्रम में नाम क्रमबद्ध करना

बोर्ड प्रोग्राम समाधान
मॉडल प्रोग्राम 2: CompareTo()
का उपयोग करके नामों की श्रृंखला पर बबल सॉर्ट करें
आयात java.util.Scanner;

सार्वजनिक वर्ग SortNamesLexicographical {
    सार्वजनिक स्थैतिक शून्य मुख्य(स्ट्रिंग[] तर्क) {
        स्कैनर इन = नया स्कैनर (System.in);
        स्ट्रिंग[] नाम = नया स्ट्रिंग[5];

        System.out.println('5 नाम दर्ज करें:');
        के लिए (int i = 0; i < names.length; i++) {
            System.out.print("Name " + (i + 1) + ": ");
            names[i] = in.nextLine().trim();
        }

        // Bubble Sort using compareTo()
        for (int i = 0; i < names.length - 1; i++) {
            for (int j = 0; j < names.length - 1 - i; j++) {
                // If names[j] comes alphabetically after names[j+1]:
                if (names[j].compareTo(names[j + 1]) > 0) {
                    स्ट्रिंग अस्थायी = नाम[जे];
                    नाम[जे] = नाम[जे + 1];
                    नाम[जे + 1] = अस्थायी;
                }
            }
        }

        System.out.println("
वर्णानुक्रम में नाम (लेक्सिकोग्राफ़िक) क्रम:");
        (स्ट्रिंग एन: नाम) के लिए {
            System.out.println(n);
        }
    }
}

सामान्य गलतियाँ एवं परीक्षक के जाल (Examiner Traps)

सामान्य भ्रम / गलत उत्तर

स्ट्रिंग टेक्स्ट सामग्री की तुलना करने के लिए .equals() के बजाय '==' का उपयोग करना

सही वैज्ञानिक तथ्य

टेक्स्ट तुलना के लिए हमेशा .equals() का उपयोग करें। '==' मेमोरी पतों की तुलना करता है और समान टेक्स्ट के साथ भी नए स्ट्रिंग () ऑब्जेक्ट के लिए गलत रिटर्न देता है।

सामान्य भ्रम / गलत उत्तर

सबस्ट्रिंग में एंडइंडेक्स पर विश्वास करना (beginIndex, EndIndex) समावेशी है

सही वैज्ञानिक तथ्य

endIndex एक्सक्लूसिव है। str.substring(1, 4) केवल सूचकांक 1, 2, और 3 पर वर्ण निकालता है (लंबाई = 4 - 1 = 3)।

सामान्य भ्रम / गलत उत्तर

स्ट्रिंग को पुन: असाइनमेंट के बिना उसी स्थान पर संशोधित करने के लिए str.toUpperCase() या ट्रिम() की अपेक्षा करना

सही वैज्ञानिक तथ्य

स्ट्रिंग्स अपरिवर्तनीय हैं। आपको परिणाम वापस निर्दिष्ट करना होगा: 'str = str.toUpperCase();'.

सामान्य भ्रम / गलत उत्तर

Accessing Index str.length() with charAt()

सही वैज्ञानिक तथ्य

Valid सूचकांकों की सीमा 0 से str.length() - 1. str.charAt(str.length()) को कॉल करने से एक StringIndexOutOfBoundsException उत्पन्न होती है।

वास्तुशिल्प ब्लूप्रिंट: स्ट्रिंग हैंडलिंग

ICSE Class 10 Java : String Immutability, Memory Pools & Core Methods Stack References String s1 = "ICSE"; String s2 = "ICSE"; Both s1 & s2 point to same SCP entry! String s3 = new String("ICSE"); s3 points to independent Heap block! s1 == s2 : true | s1 == s3 : false Heap Memory Area String Constant Pool (SCP) "ICSE" [Addr: 0x1A] Unique literals reused across threads Regular Heap Allocation "ICSE" [Addr: 0x9F] Created via new operator High-Frequency ICSE String Methods Reference Matrix • Extraction: charAt(idx), substring(start), substring(start, end) [end is exclusive!]. • Search & Modify: indexOf(ch), lastIndexOf(ch), trim(), replace(old, new), toLowerCase(), toUpperCase(). • Comparison: equals(str) [exact], equalsIgnoreCase(str), compareTo(str) [lexicographical difference].

अध्याय का सार संक्षेप एवं 10 मुख्य निष्कर्ष

मुख्य बिंदु 1
जावा में, स्ट्रिंग ऑब्जेक्ट अपरिवर्तनीय हैं: एक बार मेमोरी में निर्मित होने के बाद, उनकी वर्ण सामग्री को कभी भी संशोधित या आकार नहीं दिया जा सकता है।
मुख्य बिंदु 2
स्ट्रिंग अक्षर (जैसे `"KOLKATA"`) पुन: उपयोग के माध्यम से मेमोरी दक्षता को अधिकतम करने के लिए स्ट्रिंग कॉन्स्टेंट पूल (एससीपी) नामक हीप के भीतर एक विशेष मेमोरी ज़ोन में संग्रहीत होते हैं।
मुख्य बिंदु 3
`==` ऑपरेटर ऑब्जेक्ट मेमोरी पते की तुलना करता है (संदर्भ पहचान), जबकि `.equals()` वास्तविक वर्ण-दर-अक्षर पाठ सामग्री की तुलना करता है।
मुख्य बिंदु 4
`charAt(int index)` निर्दिष्ट शून्य-आधारित सूचकांक पर `char` लौटाता है; अमान्य सूचकांक एक रनटाइम `StringIndexOutOfBoundsException` फेंकते हैं।
मुख्य बिंदु 5
`substring(int start, int end)` सूचकांक `start` (समावेशी) से शुरू होने वाला और सूचकांक `end - 1` (अनन्य) पर समाप्त होने वाला एक उप-अनुक्रम देता है।
मुख्य बिंदु 6
`compareTo(String anotherString)` लेक्सिकोग्राफ़िकल (ASCII) तुलना करता है: यदि समान है तो 0 देता है, यदि स्ट्रिंग पहले आती है तो नकारात्मक, यदि यह आता है तो सकारात्मक है सफल होता है.
मुख्य बिंदु 7
`indexOf(char/str)` पहली घटना सूचकांक लौटाता है (या -1 यदि नहीं मिला); `lastIndexOf()` अंतिम घटना सूचकांक लौटाता है।
मुख्य बिंदु 8
`trim()` विधि सभी अग्रणी और अनुगामी व्हाइटस्पेस वर्णों को समाप्त कर देती है, जिससे आंतरिक व्हाइटस्पेस अबाधित रह जाता है।
मुख्य बिंदु 9
`+` का उपयोग करके स्ट्रिंग संयोजन मूल स्ट्रिंग को संशोधित नहीं करता है; यह गतिशील रूप से हीप मेमोरी में एक बिल्कुल नए स्ट्रिंग ऑब्जेक्ट को इंस्टेंट करता है।
मुख्य बिंदु 10
गहन स्ट्रिंग म्यूटेशन (जैसे तंग लूप के अंदर) के लिए, म्यूटेबल क्लास `StringBuffer` (थ्रेड-सुरक्षित) या `StringBuilder` (उच्च प्रदर्शन) को प्राथमिकता दी जाती है।

स्व-मूल्यांकन अभ्यास (Check Your Understanding)

मूल वैचारिक स्पष्टता की जांच के लिए नैदानिक प्रश्न। पहले स्वयं हल करें, फिर उत्तर देखें।

1
जावा में स्ट्रिंग अपरिवर्तनीयता का क्या अर्थ है? स्ट्रिंग संयोजन के दौरान मेमोरी कैसे व्यवहार करती है?
उत्तर एवं व्याख्या देखें
उत्तर: स्ट्रिंग अपरिवर्तनीयता का अर्थ है कि एक बार जब java.lang.String ऑब्जेक्ट को हीप मेमोरी में इंस्टेंट किया जाता है, तो इसके आंतरिक वर्ण अनुक्रम और आकार को कभी भी संशोधित नहीं किया जा सकता है। जब स्ट्रिंग संयोजन (उदाहरण के लिए, 'str = str + " Java";') किया जाता है, तो मूल स्ट्रिंग ऑब्जेक्ट को संशोधित नहीं किया जाता है; इसके बजाय, जावा वर्चुअल मशीन गतिशील रूप से संयोजित पाठ वाले ढेर पर एक नया स्ट्रिंग ऑब्जेक्ट आवंटित करती है और संदर्भ चर को इस नए पते पर इंगित करती है, जिससे पुराने स्ट्रिंग को गैर-संदर्भित होने पर कचरा संग्रहण के लिए पात्र छोड़ दिया जाता है।
2
स्ट्रिंग्स की तुलना करते समय '==' ऑपरेटर और '.equals()' विधि के बीच अंतर करें।
उत्तर एवं व्याख्या देखें
उत्तर: '==' ऑपरेटर संदर्भ (पता) समानता तुलना करता है: यह जाँचता है कि क्या दो संदर्भ चर हीप या स्ट्रिंग कॉन्स्टेंट पूल में बिल्कुल समान भौतिक मेमोरी स्थान को इंगित करते हैं (उदाहरण के लिए, 's1 == s2' गलत है यदि एक को पूल किया गया है और एक को 'नए' के माध्यम से बनाया गया है)। '.equals()' विधि सिमेंटिक सामग्री की तुलना करती है: यह दो स्ट्रिंग्स के वास्तविक वर्ण अनुक्रमों की केस-संवेदी रूप से तुलना करती है और यदि उनमें समान क्रम में समान वर्ण होते हैं, तो उनकी स्मृति स्थानों की परवाह किए बिना, सत्य लौटाता है।
3
ComparTo() विधि के रिटर्न मानों को उदाहरणों के साथ समझाएं।
उत्तर एवं व्याख्या देखें
उत्तर: 'compareTo(StringotherString)' विधि यूनिकोड/ASCII वर्ण मानों के आधार पर शब्दकोषीय (शब्दकोश) तुलना करती है: 1. यदि दोनों स्ट्रिंग्स में समान स्थिति में समान वर्ण हैं तो 0 लौटाता है (उदाहरण के लिए, ''CAT''.compareTo('CAT'''' 0 लौटाता है)। 2. यदि आह्वान स्ट्रिंग वर्णानुक्रम में तर्क से पहले आती है तो एक नकारात्मक पूर्णांक लौटाता है (उदाहरण के लिए, ''A''.compareTo('B'')' -1 लौटाता है क्योंकि 'A' (65) - 'B' (66) = -1)। 3. यदि लागू स्ट्रिंग वर्णानुक्रम में तर्क का अनुसरण करती है तो एक सकारात्मक पूर्णांक लौटाता है (उदाहरण के लिए, ''D''.compareTo('A'')' 3 लौटाता है क्योंकि 'D' (68) - 'A' (65) = 3).
4
स्ट्रिंग कॉन्स्टेंट पूल (SCP) क्या है? जावा इसका उपयोग क्यों करता है?
उत्तर एवं व्याख्या देखें
उत्तर: स्ट्रिंग कॉन्स्टेंट पूल (एससीपी) जावा हीप के अंदर स्थित एक समर्पित मेमोरी कैशिंग क्षेत्र है जिसे विशेष रूप से स्ट्रिंग अक्षर को संग्रहीत करने के लिए डिज़ाइन किया गया है। जब एक स्ट्रिंग शाब्दिक बनाया जाता है (उदाहरण के लिए, 'स्ट्रिंग एस = "दिल्ली";'), जेवीएम पूल की जांच करता है; यदि एक समान शाब्दिक पहले से मौजूद है, तो यह नई हीप मेमोरी आवंटित करने के बजाय पूल किए गए संदर्भ का पुन: उपयोग करता है। जावा मेमोरी फ़ुटप्रिंट को कम करने और रनटाइम प्रदर्शन को अनुकूलित करने के लिए एससीपी का उपयोग करता है, क्योंकि स्ट्रिंग अक्षर अनुप्रयोगों में स्ट्रिंग ऑब्जेक्ट्स के विशाल बहुमत का प्रतिनिधित्व करते हैं।
5
स्ट्रिंग 'KNOWLEDGE' पर 'str.substring(2, 6)' का संचालन क्या है?
उत्तर एवं व्याख्या देखें
उत्तर: 'substring(beginIndex, EndIndex)' विधि शुरुआती इंडेक्स (समावेशी) से शुरू होने वाले वर्णों को अंत इंडेक्स तक निकालती है - 1 (अनन्य). 'ज्ञान' (सूचकांक: 0:K, 1:N, 2:O, 3:W, 4:L, 5:E, 6:D, 7:G, 8:E) में, सूचकांक 2, 3, 4, और 5 के अक्षर निकाले जाते हैं, जिससे स्ट्रिंग वापस आती है: 'OWLE'।
6
पिग लैटिन शब्द क्या है? 'प्रोग्राम' को पिग लैटिन में बदलने का एक उदाहरण दीजिए।
उत्तर एवं व्याख्या देखें
उत्तर: पिग लैटिन शब्द एक एन्कोडेड शब्द है जो शब्द में पहला स्वर ढूंढकर, उस स्वर से पहले के सभी व्यंजन को शब्द के अंत में ले जाकर और प्रत्यय 'AY' जोड़कर बनाया जाता है। 'प्रोग्राम' के लिए, इंडेक्स 2 पर पहला स्वर 'O' है। इंडेक्स 2 से अंत तक स्ट्रिंग 'OGRAM' है, पूर्ववर्ती व्यंजन 'PR' हैं, और 'AY' जोड़ने से पिग लैटिन शब्द बनता है: 'OGRAMPRAY'।
7
स्ट्रिंग में ट्रिम() और रिप्लेस() तरीकों के बीच क्या अंतर है?
उत्तर एवं व्याख्या देखें
उत्तर: 'trim()' केवल अग्रणी (शुरुआत) को हटाता है और एक स्ट्रिंग से व्हाइटस्पेस वर्णों को पीछे करना (समाप्त करना), शब्दों के बीच किसी भी रिक्त स्थान को पूरी तरह से बरकरार रखना (उदाहरण के लिए, 'ए बी'.ट्रिम () 'ए बी' उत्पन्न करता है)। 'रिप्लेस (चार ओल्डचार, चार न्यूचार)' एक निर्दिष्ट वर्ण की सभी घटनाओं को रिक्त स्थान, आंतरिक वर्ण और सीमाओं सहित पूरे स्ट्रिंग में एक नए चरित्र के साथ प्रतिस्थापित करता है।
8
लूप के अंदर पाठ को संशोधित करते समय स्ट्रिंगबिल्डर को स्ट्रिंग पर प्राथमिकता क्यों दी जाती है?
उत्तर एवं व्याख्या देखें
उत्तर: क्योंकि स्ट्रिंग अपरिवर्तनीय है, लूप में टेक्स्ट जोड़ने से एक नया स्ट्रिंग ऑब्जेक्ट बनता है और प्रत्येक पुनरावृत्ति में पुराने को हटा दिया जाता है, जिससे बड़े पैमाने पर मेमोरी कचरा उत्पन्न होता है और $O(N^2)$ ओवरहेड कॉपी होता है। स्ट्रिंगबिल्डर परिवर्तनशील है; इसकी आंतरिक वर्ण सरणी गतिशील रूप से विस्तारित होती है, जिससे अस्थायी हीप ऑब्जेक्ट बनाए बिना वर्णों को $O(1)$ परिशोधित समय में जगह में जोड़ा जा सकता है।
अध्याय का अध्ययन पूर्ण हुआ?
अभ्यास के लिए तैयार?

ऑनलाइन CBT टेस्ट देकर तैयारी का मूल्यांकन करें

झारखण्ड बोर्ड परीक्षा पैटर्न पर आधारित बहुविकल्पीय प्रश्नों का ऑनलाइन टेस्ट दें। तुरंत परिणाम, समय विश्लेषण और प्रत्येक प्रश्न का विस्तृत हल प्राप्त करें।