SlideShare a Scribd company logo
Programming in Java
Lecture 13: StringBuffer
Introduction
 A string buffer implements a mutable sequence of characters.
 A string buffer is like a String, but can be modified.
 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.
 Every string buffer has a capacity.
 When the length of the character sequence contained in the
string buffer exceed the capacity, it is automatically made
larger.
Introduction
 String buffers are used by the compiler to implement the
binary string concatenation operator +.
 For example:
x = "a" + 4 + "c"
is compiled to the equivalent of:
x = new StringBuffer().append("a").append(4).
append("c") .toString()
Why StringBuffer?
 StringBuffer is a peer class of String that provides much of the
functionality of strings.
 String represents fixed-length, immutable character sequences. In
contrast, 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.
StringBuffer Constructors
 StringBuffer defines these four constructors:
◦ StringBuffer( )
◦ StringBuffer(int size)
◦ StringBuffer(String str)
◦ StringBuffer(CharSequence chars)
 The default constructor reserves room for 16 characters without
reallocation.
 By allocating room for a few extra characters(size +16),
StringBuffer reduces the number of reallocations that take place.
Brain Storming
StringBuffer sb = new StringBuffer();
System.out.println(sb.capacity());
StringBuffer sb = new StringBuffer(65);
System.out.println(sb.capacity());
StringBuffer sb = new StringBuffer(“A”);
System.out.println(sb.capacity());
StringBuffer sb = new StringBuffer('A');
System.out.println(sb.capacity());
StringBuffer Methods
length( ) and capacity( )
The current length of a StringBuffer can be found via the length( ) method,
while the total allocated capacity can be found through the capacity( )
method.
int length( )
int capacity( )
Example:
class StringBufferDemo {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer(“New Zealand");
System.out.println("length = " + sb.length());
System.out.println("capacity = " + sb.capacity());
}
}
ensureCapacity( )
 If we want to preallocate room for a certain number of
characters after a StringBuffer has been constructed, we can
use ensureCapacity( ) to set the size of the buffer.
 This is useful if we know in advance that we will be
appending a large number of small strings to a StringBuffer.
void ensureCapacity(int capacity)
 Here, capacity specifies the size of the buffer.
Important
 When the length of StringBuffer becomes larger than the
capacity then memory reallocation is done:
 In case of StringBuffer, reallocation of memory is done using
the following rule:
 If the new_length <= 2*(original_capacity + 1), then
new_capacity = 2*(original_capacity + 1)
 Else, new_capacity = new_length.
setLength( )
 used to set the length of the buffer within a StringBuffer object.
void setLength(int length)
 Here, length specifies the length of the buffer.
 When we increase the size of the buffer, null characters are added to
the end of the existing buffer.
 If we call setLength( ) with a value less than the current value
returned by length( ), then the characters stored beyond the new
length will be lost.
charAt( ) and setCharAt( )
 The value of a single character can be obtained from a
StringBuffer via the charAt( ) method.
 We can set the value of a character within a StringBuffer using
setCharAt( ).
char charAt(int index)
void setCharAt(int index, char ch)
getChars( )
 getChars( ) method is used to copy a substring of a
StringBuffer into an array.
void getChars(int sourceStart, int sourceEnd, char target[ ],
int targetStart)
append( )
 The append( ) method concatenates the string representation
of any other type of data to the end of the invoking
StringBuffer object.
 It has several overloaded versions.
◦ StringBuffer append(String str)
◦ StringBuffer append(int num)
◦ StringBuffer append(Object obj)
Example
class appendDemo {
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);
}
}
insert( )
 The insert( ) method inserts one string into another.
 It is overloaded to accept values of all the simple types, plus
Strings, Objects, and CharSequences.
 This string is then inserted into the invoking StringBuffer
object.
◦ StringBuffer insert(int index, String str)
◦ StringBuffer insert(int index, char ch)
◦ StringBuffer insert(int index, Object obj)
Example
class insertDemo {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer("I Java!");
sb.insert(2, "like ");
System.out.println(sb);
}
}
reverse( )
 Used to reverse the characters within a StringBuffer object.
 This method returns the reversed object on which it was called.
StringBuffer reverse()
Example:
class ReverseDemo {
public static void main(String args[]) {
StringBuffer s = new StringBuffer(“Banana");
System.out.println(s);
s.reverse();
System.out.println(s);
}
}
delete( ) and deleteCharAt( )
 Used to delete characters within a StringBuffer.
StringBuffer delete(int startIndex, int endIndex)
StringBuffer deleteCharAt(int index)
 The delete( ) method deletes a sequence of characters from the
invoking object (from startIndex to endIndex-1).
 The deleteCharAt( ) method deletes the character at the
specified index.
 It returns the resulting StringBuffer object.
Example
class deleteDemo {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer(“She is not a good girl.”);
sb.delete(7, 11);
System.out.println("After delete: " + sb);
sb.deleteCharAt(7);
System.out.println("After deleteCharAt: " + sb);
}
}
replace( )
 Used to replace one set of characters with another set inside a
StringBuffer object.
StringBuffer replace(int startIndex, int endIndex, String str)
 The substring being replaced is specified by the indexes startIndex
and endIndex.
 Thus, the substring at startIndex through endIndex–1 is replaced.
 The replacement string is passed in str.
 The resulting StringBuffer object is returned.
Example
class replaceDemo {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer("This is a test.");
sb.replace(5, 7, "was");
System.out.println("After replace: " + sb);
}
}
substring( )
 Used to obtain a portion of a StringBuffer by calling substring( ).
String substring(int startIndex)
String substring(int startIndex, int endIndex)
 The first form returns the substring that starts at startIndex and
runs to the end of the invoking StringBuffer object.
 The second form returns the substring that starts at startIndex
and runs through endIndex–1.
L14 string handling(string buffer class)

More Related Content

What's hot (20)

PPT
Swing and AWT in java
PPTX
Packages in java
PPT
Synchronization.37
PPT
Inter threadcommunication.38
PPTX
Java packages
PPTX
Inheritance in java
PDF
Arrays in Java
PPTX
PDF
Python set
PPT
Serialization/deserialization
PPT
9. Input Output in java
PPTX
I/O Streams
PPT
Abstract class in java
PPTX
Classes objects in java
PPT
Collection Framework in java
PPT
Java interfaces
PPT
String classes and its methods.20
PPS
Wrapper class
PPTX
Java Stack Data Structure.pptx
Swing and AWT in java
Packages in java
Synchronization.37
Inter threadcommunication.38
Java packages
Inheritance in java
Arrays in Java
Python set
Serialization/deserialization
9. Input Output in java
I/O Streams
Abstract class in java
Classes objects in java
Collection Framework in java
Java interfaces
String classes and its methods.20
Wrapper class
Java Stack Data Structure.pptx

Similar to L14 string handling(string buffer class) (20)

PPTX
StringBuffer.pptx
PPTX
String Handling, Inheritance, Packages and Interfaces
PDF
String handling(string buffer class)
PDF
String handling(string buffer class)
PPTX
Java string , string buffer and wrapper class
PPT
PPTX
package
PPT
07slide
PPTX
Computer programming 2 Lesson 12
PPS
String and string buffer
PPTX
L13 string handling(string class)
PPT
M C6java7
PPTX
In the given example only one object will be created. Firstly JVM will not fi...
PPT
Java Strings methods and operations.ppt
PPT
Strings
PPT
Charcater and Strings.ppt Charcater and Strings.ppt
PPTX
Java String Handling
PPT
Chapter 7 String
PPTX
PPTX
Lecture 15_Strings and Dynamic Memory Allocation.pptx
StringBuffer.pptx
String Handling, Inheritance, Packages and Interfaces
String handling(string buffer class)
String handling(string buffer class)
Java string , string buffer and wrapper class
package
07slide
Computer programming 2 Lesson 12
String and string buffer
L13 string handling(string class)
M C6java7
In the given example only one object will be created. Firstly JVM will not fi...
Java Strings methods and operations.ppt
Strings
Charcater and Strings.ppt Charcater and Strings.ppt
Java String Handling
Chapter 7 String
Lecture 15_Strings and Dynamic Memory Allocation.pptx
Ad

More from teach4uin (20)

PPTX
Controls
PPT
validation
PPT
validation
PPT
Master pages
PPTX
.Net framework
PPT
Scripting languages
PPTX
Css1
PPTX
Code model
PPT
Asp db
PPTX
State management
PPT
security configuration
PPT
static dynamic html tags
PPT
static dynamic html tags
PPTX
New microsoft office power point presentation
PPT
.Net overview
PPT
Stdlib functions lesson
PPT
enums
PPT
memory
PPT
array
PPT
storage clas
Controls
validation
validation
Master pages
.Net framework
Scripting languages
Css1
Code model
Asp db
State management
security configuration
static dynamic html tags
static dynamic html tags
New microsoft office power point presentation
.Net overview
Stdlib functions lesson
enums
memory
array
storage clas
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced IT Governance
PDF
Electronic commerce courselecture one. Pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Big Data Technologies - Introduction.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced IT Governance
Electronic commerce courselecture one. Pdf
Modernizing your data center with Dell and AMD
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Network Security Unit 5.pdf for BCA BBA.
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Dropbox Q2 2025 Financial Results & Investor Presentation
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
The Rise and Fall of 3GPP – Time for a Sabbatical?
Big Data Technologies - Introduction.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Chapter 3 Spatial Domain Image Processing.pdf
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
Spectral efficient network and resource selection model in 5G networks
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf

L14 string handling(string buffer class)

  • 1. Programming in Java Lecture 13: StringBuffer
  • 2. Introduction  A string buffer implements a mutable sequence of characters.  A string buffer is like a String, but can be modified.  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.  Every string buffer has a capacity.  When the length of the character sequence contained in the string buffer exceed the capacity, it is automatically made larger.
  • 3. Introduction  String buffers are used by the compiler to implement the binary string concatenation operator +.  For example: x = "a" + 4 + "c" is compiled to the equivalent of: x = new StringBuffer().append("a").append(4). append("c") .toString()
  • 4. Why StringBuffer?  StringBuffer is a peer class of String that provides much of the functionality of strings.  String represents fixed-length, immutable character sequences. In contrast, 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.
  • 5. StringBuffer Constructors  StringBuffer defines these four constructors: ◦ StringBuffer( ) ◦ StringBuffer(int size) ◦ StringBuffer(String str) ◦ StringBuffer(CharSequence chars)  The default constructor reserves room for 16 characters without reallocation.  By allocating room for a few extra characters(size +16), StringBuffer reduces the number of reallocations that take place.
  • 6. Brain Storming StringBuffer sb = new StringBuffer(); System.out.println(sb.capacity()); StringBuffer sb = new StringBuffer(65); System.out.println(sb.capacity()); StringBuffer sb = new StringBuffer(“A”); System.out.println(sb.capacity()); StringBuffer sb = new StringBuffer('A'); System.out.println(sb.capacity());
  • 7. StringBuffer Methods length( ) and capacity( ) The current length of a StringBuffer can be found via the length( ) method, while the total allocated capacity can be found through the capacity( ) method. int length( ) int capacity( ) Example: class StringBufferDemo { public static void main(String args[]) { StringBuffer sb = new StringBuffer(“New Zealand"); System.out.println("length = " + sb.length()); System.out.println("capacity = " + sb.capacity()); } }
  • 8. ensureCapacity( )  If we want to preallocate room for a certain number of characters after a StringBuffer has been constructed, we can use ensureCapacity( ) to set the size of the buffer.  This is useful if we know in advance that we will be appending a large number of small strings to a StringBuffer. void ensureCapacity(int capacity)  Here, capacity specifies the size of the buffer.
  • 9. Important  When the length of StringBuffer becomes larger than the capacity then memory reallocation is done:  In case of StringBuffer, reallocation of memory is done using the following rule:  If the new_length <= 2*(original_capacity + 1), then new_capacity = 2*(original_capacity + 1)  Else, new_capacity = new_length.
  • 10. setLength( )  used to set the length of the buffer within a StringBuffer object. void setLength(int length)  Here, length specifies the length of the buffer.  When we increase the size of the buffer, null characters are added to the end of the existing buffer.  If we call setLength( ) with a value less than the current value returned by length( ), then the characters stored beyond the new length will be lost.
  • 11. charAt( ) and setCharAt( )  The value of a single character can be obtained from a StringBuffer via the charAt( ) method.  We can set the value of a character within a StringBuffer using setCharAt( ). char charAt(int index) void setCharAt(int index, char ch)
  • 12. getChars( )  getChars( ) method is used to copy a substring of a StringBuffer into an array. void getChars(int sourceStart, int sourceEnd, char target[ ], int targetStart)
  • 13. append( )  The append( ) method concatenates the string representation of any other type of data to the end of the invoking StringBuffer object.  It has several overloaded versions. ◦ StringBuffer append(String str) ◦ StringBuffer append(int num) ◦ StringBuffer append(Object obj)
  • 14. Example class appendDemo { 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); } }
  • 15. insert( )  The insert( ) method inserts one string into another.  It is overloaded to accept values of all the simple types, plus Strings, Objects, and CharSequences.  This string is then inserted into the invoking StringBuffer object. ◦ StringBuffer insert(int index, String str) ◦ StringBuffer insert(int index, char ch) ◦ StringBuffer insert(int index, Object obj)
  • 16. Example class insertDemo { public static void main(String args[]) { StringBuffer sb = new StringBuffer("I Java!"); sb.insert(2, "like "); System.out.println(sb); } }
  • 17. reverse( )  Used to reverse the characters within a StringBuffer object.  This method returns the reversed object on which it was called. StringBuffer reverse() Example: class ReverseDemo { public static void main(String args[]) { StringBuffer s = new StringBuffer(“Banana"); System.out.println(s); s.reverse(); System.out.println(s); } }
  • 18. delete( ) and deleteCharAt( )  Used to delete characters within a StringBuffer. StringBuffer delete(int startIndex, int endIndex) StringBuffer deleteCharAt(int index)  The delete( ) method deletes a sequence of characters from the invoking object (from startIndex to endIndex-1).  The deleteCharAt( ) method deletes the character at the specified index.  It returns the resulting StringBuffer object.
  • 19. Example class deleteDemo { public static void main(String args[]) { StringBuffer sb = new StringBuffer(“She is not a good girl.”); sb.delete(7, 11); System.out.println("After delete: " + sb); sb.deleteCharAt(7); System.out.println("After deleteCharAt: " + sb); } }
  • 20. replace( )  Used to replace one set of characters with another set inside a StringBuffer object. StringBuffer replace(int startIndex, int endIndex, String str)  The substring being replaced is specified by the indexes startIndex and endIndex.  Thus, the substring at startIndex through endIndex–1 is replaced.  The replacement string is passed in str.  The resulting StringBuffer object is returned.
  • 21. Example class replaceDemo { public static void main(String args[]) { StringBuffer sb = new StringBuffer("This is a test."); sb.replace(5, 7, "was"); System.out.println("After replace: " + sb); } }
  • 22. substring( )  Used to obtain a portion of a StringBuffer by calling substring( ). String substring(int startIndex) String substring(int startIndex, int endIndex)  The first form returns the substring that starts at startIndex and runs to the end of the invoking StringBuffer object.  The second form returns the substring that starts at startIndex and runs through endIndex–1.