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()方法
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
}
}
评论前必须登录!
注册