Basic se Advance tak — har topic ke 5 programs with VS Code theme. Bilkul simple aur clear samjhaya gaya!
String kya hai? Kaise banti hai? Memory mein kahan jaati hai?
String Pool mein jaata hai (same value = same object).equals() content compare karta hai.equals() use karo, kabhi == nahi!
String ke andar characters ko access karna aur dhundhna
-1indexOf() return karta hai -1 agar char/string nahi mili. Hamesha check karo: if (s.indexOf("x") != -1)String se parts nikalna, spaces hatana, aur content replace karna
substring(0, 4) mein 4 index EXCLUDED hai — sirf 0,1,2,3 ke chars milenge!String ka case change karna aur correct tarike se compare karna
String ko todna, milana, aur format karna
String[]; delimiter ek regex haisplit(".") GALAT hai! Dot regex mein "any char" hota hai. Sahi likho: split("\\.")Mutable strings — performance ke liye zaroori!
| Feature | String | StringBuilder | StringBuffer |
|---|---|---|---|
| Mutable? | No | Yes | Yes |
| Thread-safe? | Yes | No | Yes |
| Performance (loops) | Slow ❌ | Fast ⚡ | Medium |
| Use When | Fixed values | Single thread | Multi-thread |
s += "x") AVOID karo! Hamesha StringBuilder use karo — 100x faster hai!Primitives ko String mein aur String ko primitives mein convert karna
String.valueOf(x) — recommended way for all typesInteger.parseInt("123")Double.parseDouble("3.14")Boolean.parseBoolean("true")Integer.toBinaryString(10), toHexString(), toOctalString()Integer.parseInt("abc") → NumberFormatException! Invalid input ke liye hamesha try-catch use karo!Exam aur interview mein aane wale classic String problems
== sirf reference | .equals() content compare| Mistake | ❌ Galat | ✅ Sahi |
|---|---|---|
| String comparison | if (s1 == s2) | if (s1.equals(s2)) |
| Null-safe compare | s.equals("Java") ← NPE if null | "Java".equals(s) ← safe |
| substring end index | substring(0,4) = 5 chars sochna | substring(0,4) = 4 chars (0,1,2,3) |
| Loop concatenation | for(...) s += "x"; ← slow! | sb.append("x"); |
| parseInt on float | parseInt("12.5") → Exception! | parseDouble("12.5") = 12.5 |
| split dot | split(".") → empty result! | split("\\.") → correct |
| Immutability forget | s.toUpperCase(); ← s unchanged! | s = s.toUpperCase(); ← assign back |