post StringBuilder

Bhai, samjhata hoon StringBuilder ka concept step-by-step, aram se! Video waale heavy explanation ko side rakhte hain aur simple example se clear karte hain.


StringBuilder Kya Hai?

  • StringBuilder ek class hai jo Java mein mutable strings (modify hone wale strings) create karne ke liye use hoti hai.
  • Jab tum String use karte ho aur usse baar-baar modify karte ho (like concat, replace, etc.), to naye-naye objects bante hain kyunki String immutable hoti hai.
  • StringBuilder mutable hota hai, matlab tum ek hi object mein changes kar sakte ho. Isse performance improve hoti hai.

StringBuilder vs String

FeatureString (Immutable)StringBuilder (Mutable)
NatureImmutable (cannot change)Mutable (can change)
PerformanceSlow for repeated changesFast for repeated changes
Thread-SafetyThread-safe (but slower)Not thread-safe (but faster)

StringBuilder Example:

Without StringBuilder (Using String)

Agar tum String use karke baar-baar modification karte ho, to har baar naya object banta hai.

public class StringExample {
    public static void main(String[] args) {
        String s = "Hello";
        s = s + " World";  // Creates a new object
        s = s + "!";
        System.out.println(s);  // Output: Hello World!
    }
}

Yahan pe har baar s ke liye naya string object banta hai, jo memory waste karta hai aur slow hota hai.

With StringBuilder

StringBuilder se ek hi object hota hai, aur usi mein modification hota hai.

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Hello");
        sb.append(" World");  // Add " World" to the existing object
        sb.append("!");       // Add "!" to the existing object
        System.out.println(sb);  // Output: Hello World!
    }
}

Yahan koi naya object nahi bana, bas original object modify hua. Faster and efficient!


Important Methods of StringBuilder

1. append()

String ke end mein kuch add karne ke liye.

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb);  // Output: Hello World

2. insert()

String ke kisi specific index par kuch insert karne ke liye.

StringBuilder sb = new StringBuilder("Hello World");
sb.insert(6, "Beautiful ");  // Insert "Beautiful " at index 6
System.out.println(sb);  // Output: Hello Beautiful World

3. replace()

String ke ek portion ko replace karne ke liye.

StringBuilder sb = new StringBuilder("I love Java");
sb.replace(7, 11, "Python");  // Replace "Java" with "Python"
System.out.println(sb);  // Output: I love Python

4. delete()

String ke ek portion ko delete karne ke liye.

StringBuilder sb = new StringBuilder("Hello Beautiful World");
sb.delete(6, 16);  // Delete characters from index 6 to 16
System.out.println(sb);  // Output: Hello World

5. reverse()

String ko reverse karne ke liye.

StringBuilder sb = new StringBuilder("Java");
sb.reverse();
System.out.println(sb);  // Output: avaJ

6. capacity()

StringBuilder ka initial size aur uski capacity check karne ke liye.

StringBuilder sb = new StringBuilder();
System.out.println(sb.capacity());  // Default capacity: 16
sb.append("Java Programming");
System.out.println(sb.capacity());  // Capacity grows dynamically

StringBuilder ka Use Kab Karein?

  1. Jab baar-baar string ko modify karna ho (like append, delete, replace, etc.).
  2. Jab performance important ho, kyunki StringBuilder memory-efficient hota hai.
  3. Jab thread-safety ka issue na ho (StringBuffer thread-safe hota hai, but slow).

StringBuilder vs StringBuffer

FeatureStringBuilderStringBuffer
PerformanceFastSlow
Thread-SafetyNot thread-safeThread-safe

Example for Better Understanding

Maan lo tumhe ek loop mein continuously string modify karni hai:

Using String:

public class StringExample {
    public static void main(String[] args) {
        String s = "Hello";
        for (int i = 0; i < 5; i++) {
            s = s + i;  // New object every iteration
        }
        System.out.println(s);  // Output: Hello01234
    }
}

Using StringBuilder:

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Hello");
        for (int i = 0; i < 5; i++) {
            sb.append(i);  // Modifies the same object
        }
        System.out.println(sb);  // Output: Hello01234
    }
}

StringBuilder wala code memory-efficient aur fast hai kyunki ek hi object modify ho raha hai.


Conclusion

StringBuilder tumhe tab use karna chahiye:

  • Jab tumhe repeatedly string modify karni ho.
  • Jab tum performance optimize karna chahte ho.

Agar abhi bhi confusion ho ya code pe practice karni ho, to bata! Saath-saath likh ke samjha doonga.