StringBuffer & StringBuilder in Java

StringBuffer

The StringBuffer and StringBuilder classes are suitable for both assembling and modifying strings; i.e they provide methods for replacing and removing characters as well as adding them in various. Java StringBuilder class is used to create mutable (modifiable) string.

Key Points:

  • Used to created mutable (modifiable) string.
  • Mutable: Which can be changed?
  • Is thread-safe i.e. multiple threads cannot access it simultaneously.

Methods:

  • public synchronized StringBuffer append(String s)
  • public synchronized StringBuffer insert(int offset, String s)
  • public synchronized StringBuffer replace(int startIndex, int endIndex, String str)
  • public synchronized StringBuffer delete(int startIndex, int endIndex)
  • public synchronized StringBuffer reverse()

StringBuilder

Java StringBuilder class is used to create mutable (modifiable) string. The Java StringBuilder class is same as StringBuffer class except that it is non-synchronized. The StringBuffer and StringBuilder classes are suitable for both assembling and modifying strings; i.e they provide methods for replacing and removing characters as well as adding them in various.

Media content

Code Snippet

//StringBuffer & StringBuilder in Java

public class App {
    public static void main(String[] args) {
        // StringBuffer & StringBuilder in Java

        StringBuilder buffer = new StringBuilder("Tutor");
        System.out.println(buffer);

        buffer.append(" Joes");
        System.out.println(buffer);

        buffer.insert(10, " Computer");
        System.out.println(buffer);

        buffer.replace(9, 11, "@@@");
        System.out.println(buffer);

        buffer.delete(9, 11);
        System.out.println(buffer);

        buffer.reverse();
        System.out.println(buffer);

        System.out.println(buffer.charAt(2));
        System.out.println(buffer.length());
        System.out.println(buffer.substring(0));
        System.out.println(buffer.substring(0, 5));

        buffer.setCharAt(0, '@');
        System.out.println(buffer);

        StringBuffer sb = new StringBuffer();
        // StringBuffer sb = new StringBuffer();

        System.out.println(sb.capacity());// default 16
        sb.append("Hello");

        System.out.println(sb.capacity());// now 16
        sb.append("java is my favourite language");

        System.out.println(sb.capacity());// now (16*2)+2=34 i.e (oldcapacity*2)+2
    }
}