n public StringBuffer(int);
n public StringBuffer(String);
n public StringBuffer();
第一种构造函数是创建指定大小的字符串,第二个构造函数是以给定的字符串创建StringBuffer
对象,第三个构造函数是默认的构造函数,生成一个空的字符串。下卖弄的代码分别生成了3
个StringBuffer
对象:
StringBuffer sb1 = new StringBuffer(50);
StringBuffer sb2 = new StringBuffer("
字符串初始值");
StringBuffer sb3 = new StringBuffer();
StringBuffer
对象创建完之后,大小会随着内容的变化而变化。
StringBuffer
的常用方法及其用法如下。
在字符串后面追加内容
方法定义:
l public StringBuffer append(char c);
l public StringBuffer append(boolean b);
l public StringBuffer append(char[] str);
l public StringBuffer append(CharSequence str);
l public StringBuffer append(float f);
l public StringBuffer append(double d);
l public StringBuffer append(int i);
l public StringBuffer append(long l);
l public StringBuffer append(Object o);
l public StringBuffer append(String str);
l public StringBuffer append(StringBuffer sb);
l public StringBuffer append(char[] str,int offset,int len);
l public StringBuffer append(CharSequence str.int start,int end);
方法描述:在字符串后面追加信息。从上面的方法可以看出在StringBuffer
后面可以添加任何对象。
例如:
sb1.append('A');
sb1.append(10);
sb1.append("
追加的字符串");
sb1.append(new char[]{'1','2','3'});
结果:
A10
追加的字符串
123
在字符串的某个特定位置添加内容
与append
方法类似,可以添加各种对象和基本数据库,与append
方法不同的是insert
方法需要指出添加的位置,所以多了1
个参数。
方法定义:
l public StringBuffer insert(int offset,char c);
l public StringBuffer insert(int offset,boolean b);
l public StringBuffer insert(int offset,char[] str);
l public StringBuffer insert(int offset,CharSequence str);
l public StringBuffer insert(int offset,float f);
l public StringBuffer insert(int offset,double d);
l public StringBuffer insert(int offset,int i);
l public StringBuffer insert(int offset,long l);
l public StringBuffer insert(int offset,Object o);
l public StringBuffer insert(int offset,String str);
l public StringBuffer insert(int offset,char[] str,int offset,int len);
l public StringBuffer insert(int offset,CharSequence str.int start,int end);
方法描述:在字符串的某个位置添加信息。
例如(在上面代码的基础上):
sb1.insert(4,'x');
sb1.insert(5,22);
结果
:
A10
追
x22
加的字符串
123
StringBuffer的长度和容量
length
方法用于获取字符串的长度
,capacity
方法用于获取容量
,
两个不相等。
方法定义:
l public int length();
l public int capacity();
例如:
System.out.println(sb1.length());
System.out.println(sb1.capacity());
结果:
15
50
删除某个字符
方法定义:
public StringBuffer deleteCharAt(int index);
方法描述:删除指定位置的字符,索引是从零开始。
例如:
sb1.deleteCharAt(3);
结果
:
A10x22
加的字符串123
删除之前的内容为
:
A10
追
x22
加的字符串
123
。
删除某个子串
方法定义:
public StringBuffer delete(int start,int end);
方法描述:delete
方法用于删除字符串中的部分字符,第一个参数是删除的第一个字符,第二个参数是删除结束的地方,需要注意3
点:字符串的第一个字符的索引"0"
,第一个参数指定的字符会删除,但是第二个参数指定的字符不会删除.
例如:
sb1.delete(5,8);
结果:
A10x2
字符串
123
删除前字符串的内容:A10x22
加的字符串123
。
获取字符串中的字符
方法定义
:
public char charAt(int)
方法描述
:charAt(int)
方法用来获取指定位置的字符。
例如:
System.out.println(sb1.charAt(5));
结果:
2
获取字符串中的子串
方法定义:
l public String substring(int start);
从start
开始到结束的子串。
l public String substring(int start,int end);
从start
开始到end
结束的子串。
l public CharSequence subSquence(int start,int end);
从start
开始到end
结束的子串。
方法描述:
用于获取字符串的子串,
第一个方法有一个参数,用于指定开始位置,获取的子串是从该位置开始到字符串的结束,第二个方法有两个参数,第一个指定开始位置,第二个指定结束位置,与delete
方法中的参数用法基本相同象,包含第一个,不包含第二个。第三个方法含义相同。
例如:
String sub1 = sb1.substring(3,5);
String sub2 = sb1.substring(4);
转换结果:
追x
x22
加的字符串123
转换成字符串
方法定义:
public Strnig toString();
方法描述:
把StringBuffer
的内容转换成String
对象。
例如:
String str1 = sb1.toString();
转换结果:
str1
的内容为:
A10
追
x22
加的字符串
123