StringBuffer is a peer class of String that provides much of the functionality of Strings. In contrast to String, StringBuffer represents growable and writeable character sequences.
StringBuffer may have characters and substrings inserted in the middle or appended to the end.
StringBuffer will automatically grow to make room for such additions and often has more characters pre-allocated than are actually needed, to allow room for growth.
Few important point related to StringBuffer class
StringBuffer may have characters and substrings inserted in the middle or appended to the end.
StringBuffer will automatically grow to make room for such additions and often has more characters pre-allocated than are actually needed, to allow room for growth.
Few important point related to StringBuffer class
- StringBuffer is an Object like String.
- StringBuffer class is also final like String class.
- StringBuffer objects are mutable (can be modified) unlike String objects.
Constructors of StringBuffer Class
Methods of StringBuffer Class
Example:
class SBDemo1
{ public static void main(String args[])
{ StringBuffer sb1 = new StringBuffer();
System.out.println("sb1: length: "+sb1.length() + " capacity: " + sb1.capacity());
StringBuffer sb2 = new StringBuffer(100);
System.out.println("sb2: length: "+sb2.length() + " capacity: " + sb2.capacity());
StringBuffer sb3 = new StringBuffer("Hello");
System.out.println("sb3: length: "+sb3.length() + " capacity: " + sb3.capacity());
sb1.ensureCapacity(200);
System.out.println("sb1: length: "+sb1.length() + " capacity: " + sb1.capacity());
sb3.setLength(10);
System.out.println("sb3: length: "+sb3.length() + " capacity: " + sb3.capacity());
System.out.println("sb3: "+sb3);
sb3.setLength(3);
System.out.println("sb3: length: "+sb3.length() + " capacity: " + sb3.capacity());
System.out.println("sb3: "+sb3);
}
}
Output:
sb1: length: 0 capacity: 16
sb2: length: 0 capacity: 100
sb3: length: 5 capacity: 21
sb1: length: 0 capacity: 200
sb3: length: 10 capacity: 21
sb3: Hello
sb3: length: 3 capacity: 21
sb3: Hel
append() Method
It has overloaded versions for all the built-in types and for Object. These are the few of its form:
public StringBuffer append(char c)
public StringBuffer append(String str)
public StringBuffer append(boolean b)
public StringBuffer append(Object obj)
public StringBuffer append(int num)
public StringBuffer append(double
public StringBuffer append(char[] str)
public StringBuffer append(StringBuffer sb)
String.valueOf() method is called for each parameter to obtain its String representation. The result is appended to the current StringBuffer object. The buffer itself is returned by each version of append(). This allows subsequent calls to be chained together.
Note: If null string is appended then “null” gets appended.
insert() Method
The insert() method inserts one string into another. It is overloaded to accept values of all the simple types, plus Strings and Objects. Like append() method, it calls String.valueOf() method to obtain the string representation of the argument passed to it. This string is then inserted into the invoking StringBuffer object. These are the few of its form:
public StringBuffer insert(int offset, char c)
public StringBuffer insert(int offset, int c)
public StringBuffer insert(int offset, long l)
public StringBuffer insert(int offset, char[] str)
public StringBuffer insert(int offset, double d)
public StringBuffer insert(int offset, float f)
public StringBuffer insert(int offset, String str)
public StringBuffer insert(int offset, Object obj)
Example: The following example illustrates some of the methods discussed above.
class SBDemo2
{ public static void main(String args[])
{ String s; int a=42;
StringBuffer sb=new StringBuffer(40);
s=sb.append("a= ").append(a).append("!").toString();
System.out.println(s);
StringBuffer sb1=new StringBuffer("I Java!");
sb1.insert(2, "like ");
System.out.println(sb1);
System.out.println("Reverse of "+sb1+" is: "+sb1.reverse());
}
}
Output:
a= 42!
I like Java!
Reverse of I like Java! is: !avaJ ekil I