Aap String ko shuru se hi use kar rahe hain — har System.out.println("...") mein. Lekin ab tak woh sirf chhaapne ki cheez thi. Is chapter mein aap dekhenge ki ek String asal mein characters ka silsila hai, jise aap kaat sakte hain, jod sakte hain, ulta kar sakte hain, aur uske andar dhoondh sakte hain. Yeh Unit 8 hai, aur syllabus ismein String class ke methods ki ek poori list naam se maangta hai — is chapter mein woh saare aa gaye hain, har ek ka asli output ke saath.
- Strings as a Sequence of Characters
trim,toUpperCase,toLowerCase- Extracting:
charAt,indexOf,substring valueOf— Turning Anything Into a String- Comparing Strings the Right Way
- Counting Inside a String
- Reversing and Palindromes
- String Arrays and Alphabetical Order
- Dry-Run Bank — Output Questions
- How This Chapter Is Examined
- Practice Worksheet (10 Questions)
Strings as a Sequence of Characters
Ek String ke andar har character apni ek jagah par baitha hota hai, aur us jagah ka number hi uska index hai. Bilkul array ki tarah, yahan bhi index 0 se shuru hota hai.
C O M P U T E R 0 1 2 3 4 5 6 7
length() likha jaata hai — brackets ke saath, kyunki woh ek method hai. Array ke liye length likha jaata hai — bina brackets ke, kyunki woh ek variable hai. Yeh ek akshar ka fark har saal kisi na kisi ko le doobta hai. s.length() sahi, s.length galat.trim, toUpperCase, toLowerCase
Ye teen methods ek nayi String lauta dete hain — purani ko chhoote tak nahi. Yeh baat is poore chapter ki sabse zaroori aadat hai.
class S1
{
public static void main(String args[])
{
String s = " Principal Saab ";
System.out.println("[" + s + "]");
System.out.println("[" + s.trim() + "]");
System.out.println("Length with spaces = " + s.length());
System.out.println("Length trimmed = " + s.trim().length());
System.out.println(s.trim().toUpperCase());
System.out.println(s.trim().toLowerCase());
}
}
Output
[ Principal Saab ] [Principal Saab] Length with spaces = 18 Length trimmed = 14 PRINCIPAL SAAB principal saab
Square brackets isliye lagaye taaki khaali jagah dikh sake. trim() ne sirf aage-peeche ki jagah hatai — beech wali jagah waisi hi rahi, isliye trimmed length 14 hai (13 akshar + 1 beech ki jagah). Aur dhyaan dijiye s.trim().length() — ek method ka jawaab par doosra method lagana bilkul jaayaz hai, ise chaining kehte hain.
s.toUpperCase(); likhne se s khud badal jaayega. Nahi badlega. Java mein String immutable hai — ek baar bani String kabhi badalti nahi. Har method ek nayi String banata hai. Agar badla hua roop chahiye toh use pakadna padega: s = s.toUpperCase();Extracting: charAt, indexOf, substring
Ye methods String ke andar se kuch nikaalte hain ya batate hain ki kuch kahan hai.
class S2
{
public static void main(String args[])
{
String s = "COMPUTER";
System.out.println("charAt(0) = " + s.charAt(0));
System.out.println("charAt(7) = " + s.charAt(7));
System.out.println("indexOf('P') = " + s.indexOf('P'));
System.out.println("indexOf('Z') = " + s.indexOf('Z'));
System.out.println("lastIndexOf('U') = " + s.lastIndexOf('U'));
System.out.println("substring(3) = " + s.substring(3));
System.out.println("substring(0,4)= " + s.substring(0, 4));
System.out.println("replace = " + s.replace('O', '0'));
System.out.println("concat = " + s.concat(" SCIENCE"));
}
}
Output
charAt(0) = C
charAt(7) = R
indexOf('P') = 3
indexOf('Z') = -1
lastIndexOf('U') = 4
substring(3) = PUTER
substring(0,4)= COMP
replace = C0MPUTER
concat = COMPUTER SCIENCE
Teen baatein yaad rakhne layak hain. indexOf jab kuch na mile toh -1 lautata hai — isiliye “mila ya nahi” wale sawaalon mein == -1 se jaanch ki jaati hai. substring(3) index 3 se aakhir tak deta hai. Aur substring(0, 4) index 0 se shuru karke 4 se pehle tak deta hai — yaani 4 shaamil nahi hai.
substring(a, b) ka niyam ek line mein: a shaamil, b nahi. Nikle hue characters ki ginti hamesha b - a hoti hai. Isliye substring(0, 4) ne poore chaar akshar diye: C, O, M, P. Yeh sabse zyada poochha jaane wala String sawaal hai.valueOf — Turning Anything Into a String
Syllabus ki list mein ek aur method hai jise log aksar bhool jaate hain: String.valueOf(). Yeh kisi bhi type ki value ko String bana deta hai — int, double, char, boolean, sab. Yeh Integer.parseInt() ka bilkul ulta kaam hai: parseInt String se number banata hai, valueOf number se String.
valueOf on four different types
class S7
{
public static void main(String args[])
{
int n = 250;
double d = 3.75;
char c = 'A';
boolean b = true;
String s1 = String.valueOf(n);
String s2 = String.valueOf(d);
String s3 = String.valueOf(c);
String s4 = String.valueOf(b);
System.out.println("From int : " + s1 + " , length = " + s1.length());
System.out.println("From double : " + s2 + " , length = " + s2.length());
System.out.println("From char : " + s3 + " , length = " + s3.length());
System.out.println("From boolean : " + s4 + " , length = " + s4.length());
System.out.println("Now a String : " + (s1 + 10));
System.out.println("Back to int : " + (Integer.parseInt(s1) + 10));
}
}
Output
From int : 250 , length = 3 From double : 3.75 , length = 4 From char : A , length = 1 From boolean : true , length = 4 Now a String : 25010 Back to int : 260
Saboot aakhri do lines mein hai. s1 ab ek String hai, isliye s1 + 10 ne jod nahi kiya, chipka diya → 25010. Aur Integer.parseInt(s1) + 10 ne asli jod kiya → 260. Dhyaan dijiye ki valueOf par length() lagaya ja sakta hai — yani jawaab sach mein String hai. Yeh tareeka tab kaam aata hai jab kisi number ke ank ginne hon.
Integer.parseInt(), Double.parseDouble(). Number se String: String.valueOf(). Aur String ke andar ke ek-ek character ko jaanchne ke liye Character class ke methods — Character.isDigit(), isLetter(), isUpperCase(), toLowerCase(). Ye teenon parivaar Library Classes chapter se aate hain aur String wale programs mein saath-saath chalte hain.Comparing Strings the Right Way
Yeh chapter ka sabse zaroori hissa hai. Do Strings ko == se nahi milaya jaata — uske liye equals() hai. Aur agar chhote-bade akshar ka fark nahi dekhna, toh equalsIgnoreCase().
compareTo() thoda alag kaam karta hai: woh true/false nahi, ek number lautata hai. Zero ka matlab dono barabar; rinaatmak matlab pehli String varnamala mein pehle aati hai; dhanatmak matlab baad mein.
class S3
{
public static void main(String args[])
{
String a = "Java";
String b = "java";
String c = "Java";
System.out.println("a.equals(b) = " + a.equals(b));
System.out.println("a.equals(c) = " + a.equals(c));
System.out.println("a.equalsIgnoreCase(b) = " + a.equalsIgnoreCase(b));
System.out.println("a.compareTo(b) = " + a.compareTo(b));
System.out.println("a.compareTo(c) = " + a.compareTo(c));
System.out.println("a.compareToIgnoreCase(b) = " + a.compareToIgnoreCase(b));
System.out.println("a.startsWith(\"Ja\") = " + a.startsWith("Ja"));
System.out.println("a.endsWith(\"va\") = " + a.endsWith("va"));
}
}
Output
a.equals(b) = false
a.equals(c) = true
a.equalsIgnoreCase(b) = true
a.compareTo(b) = -32
a.compareTo(c) = 0
a.compareToIgnoreCase(b) = 0
a.startsWith("Ja") = true
a.endsWith("va") = true
-32 kahan se aaya? compareTo pehle alag padne wale character ki Unicode values ka antar deta hai. Yahan pehla hi character alag hai: 'J' ki value 74 aur 'j' ki 106 — toh 74 − 106 = −32. Isliye jawaab rinaatmak hai, jo batata hai ki "Java" varnamala mein "java" se pehle aata hai (capital letters ki value chhoti hoti hai).
== se milana. if (s1 == s2) content ki tulna nahi karta — woh dekhta hai ki dono ek hi object ko point kar rahe hain ya nahi. Kabhi-kabhi yeh sanyog se true aa jaata hai, isliye galti aur bhi khatarnaak hai. Content milana ho toh hamesha s1.equals(s2) likhiye.Counting Inside a String
Yeh dhaancha aapne Library Classes chapter mein dekha tha, aur yahan woh apne poore roop mein aata hai. Section B ke sawaalon mein yeh sabse zyada aata hai.
class S4
{
public static void main(String args[])
{
String s = "Principal Saab 2026";
int v = 0, cons = 0, dig = 0, sp = 0;
for (int i = 0; i < s.length(); i++)
{
char c = Character.toLowerCase(s.charAt(i));
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
v++;
else if (Character.isLetter(c))
cons++;
else if (Character.isDigit(c))
dig++;
else if (c == ' ')
sp++;
}
System.out.println("Vowels = " + v);
System.out.println("Consonants = " + cons);
System.out.println("Digits = " + dig);
System.out.println("Spaces = " + sp);
}
}
Output
Vowels = 5 Consonants = 8 Digits = 4 Spaces = 2
Do chaalaakiyaan pakadiye. Pehli, Character.toLowerCase() shuru mein hi laga diya, isliye capital aur small dono ek saath sambhal gaye — das conditions ki jagah paanch. Doosri, else if ka kram — vowel ki jaanch pehle hui, isliye jo bacha aur akshar tha wahi consonant gina gaya. Agar isLetter pehle likh dete toh vowels bhi consonants mein gine jaate.
Reversing and Palindromes
Palindrome woh shabd hai jo aage se aur peeche se ek jaisa padha jaaye. Tareeka seedha hai: ulti String banaiye, phir equals() se milaiye.
class S5
{
public static void main(String args[])
{
String s = "MALAYALAM";
String rev = "";
for (int i = s.length() - 1; i >= 0; i--)
rev = rev + s.charAt(i);
System.out.println("Original = " + s);
System.out.println("Reversed = " + rev);
if (s.equals(rev))
System.out.println(s + " is a palindrome");
else
System.out.println(s + " is not a palindrome");
}
}
Output
Original = MALAYALAM Reversed = MALAYALAM MALAYALAM is a palindrome
Loop s.length() - 1 se shuru hokar 0 tak ulta chala. rev ko "" (khaali String) se shuru karna zaroori hai — null se shuru karenge toh output mein null chhap jaayega. Aur milane ke liye equals() hi lagaya, == nahi.
String Arrays and Alphabetical Order
Syllabus String array aur naamon ko varnamala ke kram mein lagana bhi maangta hai. Sorting ka tareeka wahi bubble sort hai jo aapne Arrays chapter mein padha — bas > ki jagah compareTo() lag jaata hai, kyunki Strings ko > se nahi milaya ja sakta.
class S6
{
public static void main(String args[])
{
String names[] = {"Meera", "Aarav", "Zoya", "Kabir"};
for (int i = 0; i < names.length - 1; i++)
{
for (int j = 0; j < names.length - 1 - i; j++)
{
if (names[j].compareTo(names[j + 1]) > 0)
{
String t = names[j];
names[j] = names[j + 1];
names[j + 1] = t;
}
}
}
for (int i = 0; i < names.length; i++)
System.out.println(names[i]);
}
}
Output
Aarav Kabir Meera Zoya
Poora dhaancha bubble sort ka hi hai. Sirf ek line badli: if (a[j] > a[j+1]) ki jagah if (names[j].compareTo(names[j+1]) > 0). Yaad rakhiye — compareTo ka jawaab 0 se bada hone ka matlab hai ki pehla naam baad mein aata hai, isliye unhein badalna hai.
Dry-Run Bank — Output Questions
class DS1
{
public static void main(String args[])
{
String s = "PROGRAM";
System.out.println(s.length());
System.out.println(s.charAt(2));
System.out.println(s.indexOf('R'));
System.out.println(s.lastIndexOf('R'));
System.out.println(s.substring(2, 5));
}
}
Show Answer
7 O 1 4 OGR
P-R-O-G-R-A-M ke indexes 0 se 6 hain. charAt(2) = O. R do baar hai — indexOf ne pehla (1) diya aur lastIndexOf ne aakhri (4). substring(2,5) ne index 2, 3, 4 diye — 5 shaamil nahi → OGR.
charAt addition trap
class DS2
{
public static void main(String args[])
{
String a = "Hello";
String b = "World";
System.out.println(a.concat(b));
System.out.println(a + " " + b);
System.out.println(a.length() + b.length());
System.out.println(a.charAt(0) + b.charAt(0));
System.out.println("" + a.charAt(0) + b.charAt(0));
}
}
Show Answer
HelloWorld Hello World 10 159 HW
Chauthi line hi asli sawaal hai. charAt ek char lautata hai, aur do char ko + se jodne par Java unki Unicode values jod deta hai — 'H' = 72 aur 'W' = 87, toh 159. Paanchvi line mein aage khaali String "" lagi hai, isliye poora expression concatenation ban gaya aur HW chhapa. Yeh ek do-marks ka pakka sawaal hai.
class DS3
{
public static void main(String args[])
{
String s = "ICSE";
System.out.println(s.substring(1));
System.out.println(s.substring(1, 3));
System.out.println(s.replace('E', 'X'));
System.out.println(s.toLowerCase().indexOf('c'));
}
}
Show Answer
CSE CS ICSX 1
Aakhri line dhyaan se dekhiye. Pehle toLowerCase() ne "icse" banaya, phir usmein 'c' dhoondha gaya → index 1. Agar toLowerCase() na hota toh "ICSE" mein chhota 'c' milta hi nahi aur jawaab -1 aata.
How This Chapter Is Examined
CISCE ke Class X syllabus ke anusaar Computer Applications (86) mein ek written paper, do ghante ka, 100 marks hota hai, aur uske alaawa Internal Assessment bhi 100 marks ka, jo poori tarah practical hai aur jismein saal bhar mein kam se kam 20 lab assignments karne hote hain. Question paper mein 100 marks do hisson mein bante hain: Section A — 40 marks, jismein saare sawaal karne hote hain, aur Section B — 60 marks, jismein chhe sawaalon mein se koi chaar karne hote hain. Section A khud do sawaalon ka banta hai: Question 1 20 marks ke MCQs, aur Question 2 20 marks ke chhote sawaal — das hisse, har ek 2 marks ka.
Arrays ke baad String handling is paper ka doosra sabse bhaari chapter hai. Section A mein substring, indexOf aur charAt ke chhote output questions lagbhag pakke hain. Aur Section B mein aksar ek poora program aata hai — vowels ginna, palindrome jaanchna, shabd ulta karna, ya naamon ko varnamala mein lagana.
substring ya charAt ka jawaab phir kabhi galat nahi hota. Examiner ko bhi dikhta hai ki aapne method samjha hai.Practice Worksheet (10 Questions)
equals() and not with ==?
Show Answer
== compares references, that is, whether the two variables point to the very same object in memory, not whether they contain the same characters. equals() compares the actual contents character by character and is therefore the correct test. Using == can appear to work by coincidence in small programs, which makes the mistake harder to spot.
length and length().
Show Answer
length without brackets is a variable belonging to an array, giving the number of elements, as in a.length. length() with brackets is a method of the String class, giving the number of characters, as in s.length(). Writing s.length or a.length() is a compile-time error.
String s = "COMPUTER"; give the output of s.substring(0, 4), s.substring(3), s.indexOf('Z') and s.charAt(7).
Show Answer
COMP PUTER -1 R
substring(0,4) mein 4 shaamil nahi hai, isliye chaar akshar mile. indexOf ne -1 diya kyunki Z hai hi nahi.
class QS1
{
public static void main(String args[])
{
String s = "EDUCATION";
String out = "";
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U')
out = out + "*";
else
out = out + c;
}
System.out.println(out);
}
}
Show Answer
*D*C*T**N
E, U, A, I, O sab * ban gaye. Bache hue akshar D, C, T aur N waise hi rahe. Ginti milaiye: nau characters, nau nikle.
"Java".compareTo("java") return, and why?
Show Answer
It returns -32. compareTo() finds the first position at which the two strings differ and returns the difference of the Unicode values there. The first characters differ: 'J' is 74 and 'j' is 106, so the result is 74 − 106 = −32. A negative result means the first string comes earlier in alphabetical order. Using compareToIgnoreCase() instead would return 0.
s.toUpperCase(); and then prints s, but sees no change. Explain why, and give the corrected line.
Show Answer
Strings in Java are immutable — no method can change an existing String. toUpperCase() creates and returns a brand new String, and because the returned value was not stored anywhere it was discarded. The corrected line is s = s.toUpperCase();. The same applies to trim(), replace(), concat() and substring().
"MALAYALAM" is a palindrome.
Show Answer
class S5
{
public static void main(String args[])
{
String s = "MALAYALAM";
String rev = "";
for (int i = s.length() - 1; i >= 0; i--)
rev = rev + s.charAt(i);
System.out.println("Original = " + s);
System.out.println("Reversed = " + rev);
if (s.equals(rev))
System.out.println(s + " is a palindrome");
else
System.out.println(s + " is not a palindrome");
}
}
Output:
Original = MALAYALAM
Reversed = MALAYALAM
MALAYALAM is a palindrome
rev ko khaali String "" se shuru kijiye, aur milane ke liye equals() lagaiye — == nahi.
String a = "Hello"; String b = "World"; System.out.println(a.length() + b.length()); System.out.println(a.charAt(0) + b.charAt(0));
Show Answer
10 159
Teesri line: 5 + 5 = 10, dono int hain. Chauthi line: charAt char lautata hai, aur do char jodne par Java unki Unicode values jodta hai — 'H' = 72, 'W' = 87, toh 159. Agar HW chahiye tha toh aage "" lagana padta.
compareTo() is used instead of > when sorting a String array alphabetically, and write the if condition for a bubble sort.
Show Answer
The relational operators > and < work only on primitive types; a String is an object, so names[j] > names[j+1] will not compile. compareTo() returns an int that can then be compared with zero. The bubble sort condition is if (names[j].compareTo(names[j + 1]) > 0), meaning the first name comes later alphabetically and the two should be swapped.
String s = " Principal Saab "; give s.length() and s.trim().length(), and explain the difference.
Show Answer
18 14
trim() removes only the spaces at the beginning and the end, not the one in the middle. The trimmed string is "Principal Saab", which is 13 letters plus the single internal space, giving 14. The original had two leading and two trailing spaces, so 14 + 4 = 18.
Aage kya? Is chapter ke saath ICSE Class 10 Computer Applications ka theory syllabus poora ho gaya. Ab sabse achha kadam yeh hai ki har chapter ke worksheet dobara kijiye — bina answer khole. Peeche jaana ho toh Arrays aur Library Classes se shuru kijiye, kyunki String ke sawaal aksar unhi ke saath aate hain.
Kaizen: Aaj se roz ek shabd uthaiye — apna naam, apne shehar ka naam, kuch bhi — aur uske neeche 0, 1, 2, 3… index likhiye. Phir khud se poochhiye: substring(2, 5) kya dega? indexOf kis akshar par kya dega? Ek hafte mein aapko index ginne ke liye rukna nahi padega, aur Section A ke String sawaal sabse tez nikal jaayenge.
