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
Stringek 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:
Stringclass immutable hoti hai. - Mutable String:
StringBuilderaurStringBuffermutable 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 Poolmein 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]]:
StringBuilderfast hai but thread-safe nahi hai.StringBufferslow 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.