在了解了StringBuffer类的构造方法之后,再来学习StringBuffer类的方法,这篇来学习添加和删除方法的基本使用。
1.StringBuffer append()
打开API中StringBuffer页面,发现有好多个append(),可以看到,包含8大基本数据类型和任意对象都能作为参数,使用这个append()方法。
package stringbuffer;
public class Demo1_StringBuffer {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
System.out.println(sb);
StringBuffer sb2 = sb.append(true);
System.out.println(sb2);
StringBuffer sb3 = sb.append("Anthony");
System.out.println(sb3);
StringBuffer sb4 = sb.append(100);
System.out.println(sb4);
}
}
输出:
true
trueAnthony
trueAnthony100
上面的输出过程,我们可以清晰看到字符串拼接的效果。下面我们修改一下这段代码来看看会发生什么。
package stringbuffer;
public class Demo1_StringBuffer {
publicstaticvoid main(String[] args) {
StringBuffer sb = new StringBuffer();
StringBuffer sb2 = sb.append(true);
StringBuffer sb3 = sb.append("Anthony");
StringBuffer sb4 = sb.append(100);
System.out.println(sb);
System.out.println(sb2);
System.out.println(sb3);
System.out.println(sb4);
}
}
输出结果:
trueAnthony100
trueAnthony100
trueAnthony100
trueAnthony100
这个输出都是一样,我们就好奇了。原来上面四个StringBuffer对象都指向了同一个地址。所以,我们可以得出这么一个结论:StringBuffer是字符串缓冲区,当使用new的时候会在堆内存上新建一个对象,底层是一个长度为16的字符数组,当调用添加方法时,不会再重新创建对象,而是在不断往原来的字符串缓冲区添加字符。
2.StringBuffer insert()
往字符串缓存区域插入数据方法insert()也有很多重载方法,这里拿在指定索引位置插入字符串来举例
public class Demo1_StringBuffer {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("Anthony");
sb.insert(3,"123");
System.out.println(sb.toString());
}
}
输出:
Ant123hony
3.StringBuffer的删除功能
关于删除操作有两个方法,delectCharAt(index inx) 和delete(int start,int end),第一个是根据索引删除对应字符,第二个是根据索引范围删除字符。
package string;
public class Dem04_String {
public static void main(String[] args) {
StringBuffersb = new StringBuffer();
sb.append("Anthony learn java");
System.out.println(sb.deleteCharAt(3)); // 删除索引为3上的字符
System.out.println(sb);
System.out.println(sb.delete(4,8)); //注意这里不包含索引8
}
}
输出结果:
Antony learn java
Antony learn java
Antoearn java