Java Tutorial/Development/StringBuffer StringBuilder
Содержание
- 1 Adding String to a StringBuffer Object
- 2 Appending a subset of the elements from a char array
- 3 Appending a Substring: append part of the aString object to the buf object
- 4 Appending Basic Types: long, double
- 5 Calling append() method to construct a StringBuffer object
- 6 Changing a single character in a StringBuffer object
- 7 Changing the StringBufer Length for a StringBuffer Object
- 8 Check the capacity of StringBuilder object
- 9 Convert digit to character with Character.forDigit
- 10 Creating a StringBuffer object with a specific value for the capacity
- 11 Creating a String Object From a StringBuffer Object
- 12 Deletes text from the StringBuilder object
- 13 Extracting Characters From a Mutable String: charAt() and getChars() methods
- 14 Finding the Position of a Substring
- 15 Inserting Strings
- 16 Remove substring from StringBuilder
- 17 Removing several characters from a StringBuffer object
- 18 Replacing a Substring in the Buffer
- 19 Reversing the sequence of characters in a StringBuffer object with the reverse() method
- 20 Specifying the index position in the buffer where the search is to start
- 21 StringBuffer and StringBuilder
- 22 StringBuffer methods charAt, setCharAt, getChars and reverse
- 23 StringBuffer methods insert, delete and deleteCharAt
- 24 The append() method returns a reference to the extended StringBuffer object
- 25 The ensureCapacity() method changes the default capacity of a StringBuffer object
- 26 The Length of a StringBuffer Object
- 27 To find out a StringBuffer object"s capacity
- 28 Using the deleteCharAt() method to remove a character from a StringBuffer object at the index position
- 29 You can also create a StringBuffer object using a reference stored inariable of type String:
Adding String to a StringBuffer Object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer newString = new StringBuffer("abcde1234567890"); newString.append("saves nine"); System.out.println(newString); }
}</source>
abcde1234567890saves nine
Appending a subset of the elements from a char array
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer buf = new StringBuffer("::"); char[] text = { "i", "s", " ", "e", "x", "a", "c", "t", "l", "y"}; buf.append(text, 2, 8); System.out.println(buf); }
}</source>
:: exactly
Appending a Substring: append part of the aString object to the buf object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer buf = new StringBuffer("1234567890"); String aString = "abcdefghijk"; buf.append(aString, 3, 4); System.out.println(buf); }
}</source>
1234567890d
Appending Basic Types: long, double
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer buf = new StringBuffer("The number is "); long number = 999; buf.append(number); buf.append(12.34); System.out.println(buf); }
}</source>
The number is 99912.34
Calling append() method to construct a StringBuffer object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer proverb = new StringBuffer(); // Capacity is 16 proverb.append("A").append("B").append("C").append("D").append("E"); System.out.println(proverb); }
}</source>
ABCDE
Changing a single character in a StringBuffer object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer phrase = new StringBuffer("one two three four"); phrase.setCharAt(3, "Z"); System.out.println(phrase); }
}</source>
oneZtwo three four
Changing the StringBufer Length for a StringBuffer Object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer newString = new StringBuffer("abcde1234567890"); System.out.println(newString.capacity()); System.out.println(newString.length()); System.out.println(newString); newString.setLength(8); System.out.println(newString.capacity()); System.out.println(newString.length()); System.out.println(newString); }
}</source>
31 15 abcde1234567890 31 8 abcde123
Check the capacity of StringBuilder object
<source lang="java">
public class Main {
public static void main(String[] a) { StringBuilder builder1 = new StringBuilder(); StringBuilder builder2 = new StringBuilder(0); StringBuilder builder3 = new StringBuilder(100); System.out.println(builder1.capacity()); System.out.println(builder2.capacity()); System.out.println(builder3.capacity()); }
} /* 16 0 100
- /</source>
Convert digit to character with Character.forDigit
<source lang="java">
public class MainClass {
public static void main(String args[]) { System.out.printf("Convert digit to character: %s\n", Character.forDigit(12, 2)); }
}</source>
Creating a StringBuffer object with a specific value for the capacity
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer newString = new StringBuffer(50); System.out.println(newString.capacity()); }
}</source>
50
Creating a String Object From a StringBuffer Object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer palindrome = new StringBuffer("so many dynamos");
String aString = palindrome.toString(); System.out.println(aString); }
}</source>
so many dynamos
Deletes text from the StringBuilder object
<source lang="java">
public class Main {
public static void main(String[] a) { StringBuilder builder = new StringBuilder("Line 1\n"); builder.append("Line 3\n"); builder.insert(0, "Line 2\n"); System.out.println(builder.toString()); builder = builder.delete(2, 6); System.out.println(builder.toString()); }
} /* Line 2 Line 1 Line 3 Li Line 1 Line 3
- /</source>
Extracting Characters From a Mutable String: charAt() and getChars() methods
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer phrase = new StringBuffer("one two three four"); System.out.println(phrase.charAt(5)); char[] textArray = new char[3]; phrase.getChars(9, 12, textArray, 0); for(char ch: textArray){ System.out.println(ch); } }
}</source>
w h r e
Finding the Position of a Substring
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer phrase = new StringBuffer("one two three four"); int position = phrase.lastIndexOf("three"); System.out.println(position); }
}</source>
8
Inserting Strings
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer phrase = new StringBuffer("one two three four"); phrase.insert(4, "old"); System.out.println(phrase); }
}</source>
one oldtwo three four
Remove substring from StringBuilder
<source lang="java">
public class Main {
public static void main(String[] args) { StringBuilder lipsum = new StringBuilder("Lorem ipsum dolor sit amet."); System.out.println("lipsum = " + lipsum.toString()); lipsum.delete(0, 28); System.out.println("lipsum = " + lipsum.toString()); lipsum.deleteCharAt(lipsum.length() - 1); System.out.println("lipsum = " + lipsum.toString()); }
}</source>
Removing several characters from a StringBuffer object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer phrase = new StringBuffer("one two three four"); phrase.delete(5, 9); System.out.println(phrase); }
}</source>
one three four
Replacing a Substring in the Buffer
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer phrase = new StringBuffer("one two three four"); String substring = "two"; String replacement = "twenty"; int position = phrase.lastIndexOf(substring); // Find start of "two" phrase.replace(position, position + substring.length(), replacement); System.out.println(phrase); }
}</source>
one twenty three four
Reversing the sequence of characters in a StringBuffer object with the reverse() method
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer palindrome = new StringBuffer("so many dynamos");
palindrome.reverse(); System.out.println(palindrome); }
}</source>
somanyd ynam os
Specifying the index position in the buffer where the search is to start
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer phrase = new StringBuffer("one two three four"); int position = phrase.lastIndexOf("three", 6); System.out.println(position); }
}</source>
-1
StringBuffer and StringBuilder
- Using StringBuffer and StringBuilder to transform strings frequently: adding, deleting, or replacing substrings in a string.
- Operations will be faster and easier using mutable objects.
- All the operations in the context of StringBuffer are available with the StringBuilder class, which will be faster but not thread-safe.
StringBuffer methods charAt, setCharAt, getChars and reverse
<source lang="java">
public class MainClass {
public static void main( String args[] ) { StringBuffer buffer = new StringBuffer( "hello there" ); System.out.printf( "buffer = %s\n", buffer.toString() ); System.out.printf( "Character at 0: %s\nCharacter at 4: %s\n\n", buffer.charAt( 0 ), buffer.charAt( 4 ) ); char charArray[] = new char[ buffer.length() ]; buffer.getChars( 0, buffer.length(), charArray, 0 ); System.out.print( "The characters are: " ); for ( char character : charArray ) System.out.print( character ); buffer.setCharAt( 0, "H" ); buffer.setCharAt( 6, "T" ); System.out.printf( "\n\nbuf = %s", buffer.toString() ); buffer.reverse(); System.out.printf( "\n\nbuf = %s\n", buffer.toString() ); }
}</source>
StringBuffer methods insert, delete and deleteCharAt
<source lang="java">
public class MainClass {
public static void main(String args[]) { Object objectRef = "hello"; String string = "goodbye"; char charArray[] = { "a", "b", "c", "d", "e", "f" }; boolean booleanValue = true; char characterValue = "K"; int integerValue = 7; long longValue = 10000000; float floatValue = 2.5f; double doubleValue = 33.3; StringBuffer buffer = new StringBuffer(); buffer.insert(0, objectRef); buffer.insert(0, " "); buffer.insert(0, string); buffer.insert(0, " "); buffer.insert(0, charArray); buffer.insert(0, " "); buffer.insert(0, charArray, 3, 3); buffer.insert(0, " "); buffer.insert(0, booleanValue); buffer.insert(0, " "); buffer.insert(0, characterValue); buffer.insert(0, " "); buffer.insert(0, integerValue); buffer.insert(0, " "); buffer.insert(0, longValue); buffer.insert(0, " "); buffer.insert(0, floatValue); buffer.insert(0, " "); buffer.insert(0, doubleValue); System.out.printf("buffer after inserts:\n%s\n\n", buffer.toString()); buffer.deleteCharAt(10); buffer.delete(2, 6); System.out.printf("buffer after deletes:\n%s\n", buffer.toString()); }
}</source>
buffer after inserts: 33.3 2.5 10000000 7 K true def abcdef goodbye hello buffer after deletes: 332.5 10000000 7 K true def abcdef goodbye hello
The append() method returns a reference to the extended StringBuffer object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer newString = new StringBuffer("abcde1234567890"); StringBuffer newBuffer = newString.append("saves nine"); System.out.println(newBuffer); }
}</source>
abcde1234567890saves nine
The ensureCapacity() method changes the default capacity of a StringBuffer object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer newString = new StringBuffer("abcde"); System.out.println(newString.capacity()); newString.ensureCapacity(40); System.out.println(newString.capacity()); }
}</source>
/* 21 44
The Length of a StringBuffer Object
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer aString = new StringBuffer("ABCDE"); int length = aString.length(); System.out.println(length); }
}</source>
5
To find out a StringBuffer object"s capacity
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer newString = new StringBuffer("abcde"); System.out.println(newString.capacity()); }
}</source>
21
Using the deleteCharAt() method to remove a character from a StringBuffer object at the index position
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer phrase = new StringBuffer("one two three four"); phrase.deleteCharAt(10); System.out.println(phrase); }
}</source>
one two thee four
You can also create a StringBuffer object using a reference stored inariable of type String:
<source lang="java">
public class MainClass {
public static void main(String[] arg) { StringBuffer aString = new StringBuffer("ABCDE");
String phrase = "abced"; StringBuffer buffer = new StringBuffer(phrase); System.out.println(aString); System.out.println(buffer); }
}</source>
ABCDE abced