说明
StringBuffer和StringBuilder的常用方法几乎相同,这里合并在一起讲了,以StringBuffer为例讲述一下它们的常用方法
总体方法一览
以StringBuffer为例
其中部分方法已经在String类常用方法详解中讲过了,这里就不讲了,只讲一些没有讲过的,比较常用的方法
请参考:String类常用方法详解
append
功能划分
追加字符/字符串到StringBuffer上
返回值为自身
有很多重载类型,根据重载类型可以分为三组
- 第一组:追加单个类型
- 第二组:追加字符数组char[],通过offset偏移量和追加长度指定追加的字符串
- 第三组:通过[start,end)来指定追加到StringBuffer的字符串
第一组
追加单个类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| StringBuffer stringBuffer = new StringBuffer();
System.out.println(stringBuffer.append("ikun"));
System.out.println(stringBuffer.append(6));
System.out.println(stringBuffer.append(true));
System.out.println(stringBuffer.append('!'));
System.out.println(stringBuffer.append(8.8F));
System.out.println(stringBuffer.append(new char[]{'a', 'b', 'c'}));
|
第二组
追加字符数组char[],通过offset偏移量和追加长度指定追加的字符串
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer();
System.out.println(stringBuffer.append(new char[]{'我', '是', '祖', '国', '的', '花', '朵'}, 2, 3));
|
第三组
通过[start,end)来指定追加到StringBuffer的字符串
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer();
System.out.println(stringBuffer.append(new String("我是祖国的花朵"), 2,5));
|
delete
删除StringBuffer中在[start, end)的内容
public synchronized StringBuffer delete(int start, int end)
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer("唱跳rap打篮球");
System.out.println(stringBuffer.delete(2, 5));
|
deleteCharAt
删除StringBuffer指定index的字符
返回值为自身
public synchronized StringBuffer deleteCharAt(int index)
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer("唱跳rap打篮球");
System.out.println(stringBuffer.deleteCharAt(1));
|
insert
功能划分
insert用于将字符/字符串插入StringBuffer里面
有很多重载形式,可以分为以下两组
- 第一组:在指定offset位置插入待插入数据的整体到StringBuffer中
- 第二组:在指定offset位置插入待插入数据的部分到StringBuffer中
第一组
在指定offset位置插入待插入数据的整体到StringBuffer中
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer("StringBuffer");
System.out.println(stringBuffer.insert(6, "String"));
|
第二组
插入字符数组char[] str,通过指定offset和len来指定要插入到StringBuffer的内容
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer("StringBuffer");
System.out.println(stringBuffer.insert(6, new char[]{'h', 'a', 'p', 'p', 'y'}, 2, 2));
|
插入实现CharSequence接口的对象,如String、StringBuffer、StringBuilder等,通过指定start和end来指定要插入到StringBuffer的内容
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer("StringBuffer");
System.out.println(stringBuffer.insert(6, "happy", 2, 4));
|
reverse
可以翻转StringBuffer字符串
public synchronized StringBuffer reverse()
返回值为翻转后的字符串,也即自身
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer("StringBuffer");
System.out.println(stringBuffer.reverse());
|
appendCodePoint
可以将数字编号对应的Unicode字符编码追加到StringBuffer后面
public synchronized StringBuffer appendCodePoint(int codePoint)
1 2 3 4 5 6 7
| StringBuffer stringBuffer = new StringBuffer();
stringBuffer.appendCodePoint(74).appendCodePoint(65).appendCodePoint(86).appendCodePoint(65); System.out.println(stringBuffer);
|
subSequence
这个可以返回一个StringBuffer子串
和subString的区别就是这个的返回值为CharSequence,通用性更高
public synchronized CharSequence subSequence(int start, int end)
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer("javac++");
System.out.println(stringBuffer.subSequence(3, 5));
|
deleteCharAt
删除StringBuffer指定索引的字符
返回删除后的StringBuffer
public synchronized StringBuffer deleteCharAt(int index)
1 2 3 4 5 6
| StringBuffer stringBuffer = new StringBuffer("javac++");
System.out.println(stringBuffer.deleteCharAt(3));
|