Java StringBuffer类

Java StringBuffer类用于创建可变(可修改)字符串。 Java中的StringBuffer类与String类相同, 但它是可变的, 即可以更改。
注意:Java StringBuffer类是线程安全的, 即多个线程无法同时访问它。因此, 这是安全的, 将导致订单。StringBuffer类的重要构造函数

建设者 描述
StringBuffer() 创建一个初始容量为16的空字符串缓冲区。
StringBuffer(String str) 用指定的字符串创建一个字符串缓冲区。
StringBuffer(int capacity) 创建一个具有指定容量作为长度的空字符串缓冲区。
StringBuffer类的重要方法
修饰符和类型 方法 描述
公共同步的StringBuffer append(String s) 用于在指定的字符串后附加此字符串。 append()方法是重载的, 如append(char), append(boolean), append(int), append(float), append(double)等。
公共同步的StringBuffer insert(int offset, String s) 用于在该字符串的指定位置插入指定字符串。 insert()方法是重载的, 如insert(int, char), insert(int, boolean), insert(int, int), insert(int, float), insert(int, double)等。
公共同步的StringBuffer replace(int startIndex, int endIndex, String str) 用于替换指定的startIndex和endIndex中的字符串。
公共同步的StringBuffer delete(int startIndex, int endIndex) 用于从指定的startIndex和endIndex删除字符串。
公共同步的StringBuffer reverse() 用于反转字符串。
公共诠释 capacity() 用于返回当前容量。
public void ensureCapacity(int minimumCapacity) 用于确保容量至少等于给定的最小值。
public char charAt(int index) 用于返回指定位置的字符。
public int length() 用于返回字符串的长度, 即字符总数。
public String substring(int beginIndex) 用于从指定的beginIndex返回子字符串。
公共字符串 substring(int beginIndex, int endIndex) 用于从指定的beginIndex和endIndex返回子字符串。
什么是可变字符串
可以修改或更改的字符串称为可变字符串。 StringBuffer和StringBuilder类用于创建可变字符串。
1)StringBuffer append()方法
append()方法将给定参数与此字符串连接在一起。
class StringBufferExample{ public static void main(String args[]){ StringBuffer sb=new StringBuffer("Hello "); sb.append("Java"); //now original string is changed System.out.println(sb); //prints Hello Java } }

2)StringBuffer insert()方法
insert()方法将给定字符串与该字符串插入给定位置。
class StringBufferExample2{ public static void main(String args[]){ StringBuffer sb=new StringBuffer("Hello "); sb.insert(1, "Java"); //now original string is changed System.out.println(sb); //prints HJavaello } }

3)StringBuffer replace()方法
replace()方法从指定的beginIndex和endIndex替换给定的字符串。
class StringBufferExample3{ public static void main(String args[]){ StringBuffer sb=new StringBuffer("Hello"); sb.replace(1, 3, "Java"); System.out.println(sb); //prints HJavalo } }

4)StringBuffer delete()方法
StringBuffer类的delete()方法将字符串从指定的beginIndex删除到endIndex。
class StringBufferExample4{ public static void main(String args[]){ StringBuffer sb=new StringBuffer("Hello"); sb.delete(1, 3); System.out.println(sb); //prints Hlo } }

5)StringBuffer reverse()方法
StringBuilder类的reverse()方法反转当前字符串。
class StringBufferExample5{ public static void main(String args[]){ StringBuffer sb=new StringBuffer("Hello"); sb.reverse(); System.out.println(sb); //prints olleH } }

6)StringBuffer Capacity()方法
StringBuffer类的Capacity()方法返回缓冲区的当前容量。缓冲区的默认容量为16。如果字符数从当前容量增加, 它将增加(oldcapacity * 2)+2。例如, 如果你当前的容量为16, 则将为(16 * 2)+ 2 = 34。
class StringBufferExample6{ public static void main(String args[]){ 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 } }

7)StringBuffer sureCapacity()方法
【Java StringBuffer类】StringBuffer类的ensureCapacity()方法可确保给定容量为当前容量的最小值。如果大于当前容量, 则将容量增加(oldcapacity * 2)+2。例如, 如果你当前的容量为16, 则将为(16 * 2)+ 2 = 34。
class StringBufferExample7{ public static void main(String args[]){ 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 sb.ensureCapacity(10); //now no change System.out.println(sb.capacity()); //now 34 sb.ensureCapacity(50); //now (34*2)+2 System.out.println(sb.capacity()); //now 70 } }

    推荐阅读