Home / Computer Science / Java Language / StringBuffer in Java

StringBuffer in Java

A string buffer is similar to String, but the difference is string cannot be modified but String Buffer is modified. String Buffer is thread safe and mutable sequence of characters. At any point in time it contains some particular sequence of characters, but the length and content of the sequence can be changed through certain method calls.
String buffer methods are synchronized and used for multiple threads.
The basic operations are performed in string buffer is append, insert. These are performed by their methods which are overloaded to accept their data of any type. Each effectively converts a datum to a string and then appends or inserts the character of that String to the string buffer.
Append method always adds these characters at the end of the buffer. The insert method adds the characters at a specified point.
Every string buffer has a capacity. The length of the character sequence is does not exceed the capacity. So here is necessary to allocate the new buffer array. It made larger automatically when the internal buffer overflows.
String buffer is released in Java 5 version.
Constructors in String Buffer. The default size of string buffer is 16.

Constructors in String Buffer.

Constructor Description
StringBuffer(CharSequence seq) It creates a string buffer, which has the same characters as given
StringBuffer() It creates an empty string buffer with the initial capacity of 16.
StringBuffer(String str) It creates a string buffer with the given string.
StringBuffer(int capacity) It creates an empty string buffer with the mentioned capacity as length.

Methods in StringBuffer:

The below methods are taken from the source website.

Modifier and Type Method and Description
StringBuffer append(boolean b)

Appends the string representation of the boolean argument to the sequence.

StringBuffer append(char c)

Appends the string representation of the char argument to this sequence.

StringBuffer append(char[] str)

Appends the string representation of the char array argument to this sequence.

StringBuffer append(char[] str, int offset, int len)

Appends the string representation of a subarray of the char array argument to this sequence.

StringBuffer append(CharSequence s)

Appends the specified CharSequence to this sequence.

StringBuffer append(CharSequence s, int start, int end)

Appends a subsequence of the specified CharSequence to this sequence.

StringBuffer append(double d)

Appends the string representation of the double argument to this sequence.

StringBuffer append(float f)

Appends the string representation of the float argument to this sequence.

StringBuffer append(int i)

Appends the string representation of the int argument to this sequence.

StringBuffer append(long lng)

Appends the string representation of the long argument to this sequence.

StringBuffer append(Object obj)

Appends the string representation of the Object argument.

StringBuffer append(String str)

Appends the specified string to this character sequence.

StringBuffer append(StringBuffer sb)

Appends the specified StringBuffer to this sequence.

StringBuffer appendCodePoint(int codePoint)

Appends the string representation of the codePoint argument to this sequence.

int capacity()

Returns the current capacity.

char charAt(int index)

Returns the char value in this sequence at the specified index.

int codePointAt(int index)

Returns the character (Unicode code point) at the specified index.

int codePointBefore(int index)

Returns the character (Unicode code point) before the specified index.

int codePointCount(int beginIndex, int endIndex)

Returns the number of Unicode code points in the specified text range of this sequence.

StringBuffer delete(int start, int end)

Removes the characters in a substring of this sequence.

StringBuffer deleteCharAt(int index)

Removes the char at the specified position in this sequence.

void ensureCapacity(int minimumCapacity)

Ensures that the capacity is at least equal to the specified minimum.

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

Characters are copied from this sequence into the destination character array dst.

int indexOf(String str)

Returns the index within this string of the first occurrence of the specified substring.

int indexOf(String str, int fromIndex)

Returns the index within this string of the first occurrence of the specified substring, starting at the specified index.

StringBuffer insert(int offset, boolean b)

Inserts the string representation of the boolean argument into this sequence.

StringBuffer insert(int offset, char c)

Inserts the string representation of the char argument into this sequence.

StringBuffer insert(int offset, char[] str)

Inserts the string representation of the char array argument into this sequence.

StringBuffer insert(int index, char[] str, int offset, int len)

Inserts the string representation of a subarray of the str array argument into this sequence.

StringBuffer insert(int dstOffset, CharSequence s)

Inserts the specified CharSequence into this sequence.

StringBuffer insert(int dstOffset, CharSequence s, int start, int end)

Inserts a subsequence of the specified CharSequence into this sequence.

StringBuffer insert(int offset, double d)

Inserts the string representation of the double argument into this sequence.

StringBuffer insert(int offset, float f)

Inserts the string representation of the float argument into this sequence.

StringBuffer insert(int offset, int i)

Inserts the string representation of the second int argument into this sequence.

StringBuffer insert(int offset, long l)

Inserts the string representation of the long argument into this sequence.

StringBuffer insert(int offset, Object obj)

Inserts the string representation of the Object argument into this character sequence.

StringBuffer insert(int offset, String str)

Inserts the string into this character sequence.

int lastIndexOf(String str)

Returns the index within this string of the rightmost occurrence of the specified substring.

int lastIndexOf(String str, int fromIndex)

Returns the index within this string of the last occurrence of the specified substring.

int length()

Returns the length (character count).

int offsetByCodePoints(int index, int codePointOffset)

Returns the index within this sequence that is offset from the given index by codePointOffset code points.

StringBuffer replace(int start, int end, String str)

Replaces the characters in a substring of this sequence with characters in the specified String.

StringBuffer reverse()

Causes this character sequence to be replaced by the reverse of the sequence.

void setCharAt(int index, char ch)

The character at the specified index is set to ch.

void setLength(int newLength)

Sets the length of the character sequence.

CharSequence subSequence(int start, int end)

Returns a new character sequence that is a subsequence of this sequence.

String substring(int start)

Returns a new String that contains a subsequence of characters currently contained in this character sequence.

String substring(int start, int end)

Returns a new String that contains a subsequence of characters currently contained in this sequence.

String toString()

Returns a string representing the data in this sequence.

void trimToSize()

Attempts to reduce storage used for the character sequence.

Program for String Buffer Demo:class StringBuffTest
{
public static void main(String[] args)
{
StringBuffer sbf1 = new StringBuffer(“hello string buffer”);
StringBuffer sbf2 = new StringBuffer();
System.out.println(“before append, capacity of string buffer1 is”+sbf1.capacity());
sbf2.insert(0,”Hai”);
sbf2.append(“demo”);
sbf1.append(sbf2);
System.out.println(“sbf1…. is” + sbf1);System.out.println(“capacity string buffer1 is”+sbf1.capacity());
}
}

output as follows:

String Buffer
String Buffer

Program for the String Buffer Methods:

class BuffMethods
{
public static void main(String[] args)
{
StringBuffer sbf = new StringBuffer(“StringBuffer thread safe”);
System.out.println(sbf);int capacity=sbf.length();
int position;
for(int i=0;i<capacity;i++){
position=i+1;
System.out.println(“Character at positions=”+position+”\t”+””+sbf.charAt(i));}
String a = new String(sbf.toString());
position = a.indexOf(“thread”);
sbf.insert(position,”is”);
System.out.println(sbf);sbf.append(“it is synchronized”);
System.out.println(“Stringbuffer is”+sbf);

}
}

Output as follows:

String Buffer Methods
String Buffer Methods

Note:The above code written and tested in dev environment.

About GSK

Hi, i am Santosh Gadagamma, a tutor in Software Engineering and an enthusiast for sharing knowledge in Computer Science and other domains. I developed this site to share knowledge to all the aspirants of technologies like, Java, C/C++, DBMS/RDBMS, Bootstrap, Big Data, Javascript, Android, Spring, Hibernate, Struts and all levels of software project design, development, deployment, and maintenance. As a programmer I believe that, "The world now needs computers to function." Hope, this site guides you as a learning tool towards greater heights. I believe that Education has no end points and i wish to learn more in the process of teaching you.

Check Also

Abstraction in Java

Abstraction refers to the act of representing essential features to the outside world and showing …