qBilkul bhai! Java mein String
ek kaafi important topic hai. Main tujhe step-by-step String
ke basics se lekar advanced concepts tak revise karwata hoon.
1. String Introduction
String
ek class hai jo Java mein java.lang.String package ka part hai.- String ko immutable bola jata hai, iska matlab hai ek baar string banne ke baad usko change nahi kar sakte.
- String ko ya to String literals ke through ya phir new keyword se create karte hain.
Example:
// Using String literal
String str1 = "Hello";
// Using new keyword
String str2 = new String("World");
2. Important Methods of String
(a) Length of a String
String ka length nikalne ke liye length()
method use hota hai.
String str = "Java";
System.out.println(str.length()); // Output: 4
(b) Concatenation (Join Strings)
Strings ko combine karne ke liye +
operator ya concat()
method ka use hota hai.
String s1 = "Hello";
String s2 = "World";
System.out.println(s1 + " " + s2); // Output: Hello World
System.out.println(s1.concat(" " + s2)); // Output: Hello World
(c) Character Extraction
charAt(index)
- Kisi specific index ka character nikalta hai.substring(startIndex, endIndex)
- Ek substring nikalta hai.
String s = "Hello";
System.out.println(s.charAt(1)); // Output: e
System.out.println(s.substring(1, 4)); // Output: ell
(d) String Comparison
equals()
- Dono strings ka exact match check karta hai.equalsIgnoreCase()
- Case ko ignore karke strings compare karta hai.compareTo()
- Lexicographical comparison karta hai.
String s1 = "Hello";
String s2 = "hello";
// Case-sensitive
System.out.println(s1.equals(s2)); // Output: false
// Case-insensitive
System.out.println(s1.equalsIgnoreCase(s2)); // Output: true
// Lexicographical comparison
System.out.println(s1.compareTo(s2)); // Output: -32
(e) Searching in String
indexOf(char)
- Character ka first occurrence batata hai.lastIndexOf(char)
- Character ka last occurrence batata hai.contains(String)
- String ke andar substring check karta hai.
String s = "Java Programming";
System.out.println(s.indexOf('a')); // Output: 1
System.out.println(s.lastIndexOf('a')); // Output: 13
System.out.println(s.contains("Java")); // Output: true
(f) String Replacement
replace(oldChar, newChar)
aur replaceAll(regex, replacement)
ka use hota hai.
String s = "Java is fun";
System.out.println(s.replace('a', 'e')); // Output: Jeve is fun
System.out.println(s.replaceAll("fun", "awesome")); // Output: Java is awesome
(g) Case Conversion
toUpperCase()
- String ko uppercase mein convert karta hai.toLowerCase()
- String ko lowercase mein convert karta hai.
String s = "Hello World";
System.out.println(s.toUpperCase()); // Output: HELLO WORLD
System.out.println(s.toLowerCase()); // Output: hello world
3. Immutable vs Mutable Strings
- Immutable String:
String
class immutable hoti hai. - Mutable String:
StringBuilder
aurStringBuffer
mutable hote hain.
Example of Immutable:
String s = "Hello";
s.concat(" World");
System.out.println(s); // Output: Hello (original string unchanged)
Example of Mutable (StringBuilder):
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb); // Output: Hello World
4. String Pool
- String literals
String Pool
mein store hote hain (Heap ke andar ek special memory). - Agar ek hi string literal do alag variables mein use ho raha hai, to dono same memory location point karte hain.
Example:
String s1 = "Java";
String s2 = "Java";
System.out.println(s1 == s2); // Output: true
But agar new
keyword use karenge to alag memory allocate hoti hai.
String s1 = new String("Java");
String s2 = new String("Java");
System.out.println(s1 == s2); // Output: false
System.out.println(s1.equals(s2)); // Output: true
5. StringTokenizer (for Splitting)
Java mein StringTokenizer
ka use string ko split karne ke liye hota hai.
import java.util.StringTokenizer;
StringTokenizer st = new StringTokenizer("Java is fun", " ");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
// Output:
// Java
// is
// fun
6. Advanced Topics
String Joiner: Strings ko join karne ke liye.
import java.util.StringJoiner; StringJoiner sj = new StringJoiner(", "); sj.add("Java").add("Python").add("C++"); System.out.println(sj); // Output: Java, Python, C++
String Format: Formatted strings create karna.
String s = String.format("Name: %s, Age: %d", "Ali", 25); System.out.println(s); // Output: Name: Ali, Age: 25
[[StringBuilder]] vs [[StringBuffer]]:
StringBuilder
fast hai but thread-safe nahi hai.StringBuffer
slow hai but thread-safe hai.
Yeh tha Java Strings ka ek detailed revision! Agar kisi point mein doubt ho ya code ka example chahiye, to bata de.