/**
* 向字符串中追加内容 - append()
* 删除指定位置的字符 - deleteCharAt(index) delete(start, end)
* 在StringBuffer对象中插入内容然后形成新的字符串 - insert()
*
* @author LXL 2017年4月1日
*/
public class StringBufferDemo {
/**
* 由于String对象中存放的字符串是不能修改的,
* 所以如果要求频繁增加/删除/修改字符串中的某些字符,
* 那么用String就很不方便, 可以用StringBuffer类 .
*/
public static void main(String[] args) {
// 1. 不带参数的构造方法 - StringBuffer() :
// 该构造方法为对象提供可容纳16个字符的空间
StringBuffer sb = new StringBuffer();
// 2. 以整型数为参数的构造方法 - StringBuffer(int length)
// 该构造方法提供length()个字符位
StringBuffer sb2 = new StringBuffer(1024);
// 3. 以String对象作为参数的构造方法 - StringBuffer(String str)
StringBuffer sb3 = new StringBuffer("Hello");
/**
* 向字符串中追加内容 - append()
* append()方法可以接受任何类型的数据
*/
StringBuffer buffer = new StringBuffer("JAVA");
buffer.append('a');
buffer.append("abc");
buffer.append(123);
buffer.append(1L); // L没显示
buffer.append(true);
buffer.append(new char[] { 'q', 'w', 'e' });
System.out.println(buffer); // JAVAaabc1231trueqwe
/**
* 删除指定位置的字符 - deleteCharAt(index) delete(start, end)
* delete(start, end) : 从0开始数,从start位置开始删除,到end位置结束,删掉start位置的,保留end位置的
*/
System.out.println(buffer.length()); // 19
buffer.deleteCharAt(2);
System.out.println(buffer); // JAAaabc1231trueqwe
buffer.delete(1, 6);
System.out.println(buffer); // Jc1231trueqwe
/**
* 在StringBuffer对象中插入内容然后形成新的字符串 - insert()
* insert(i, char/string/...) : 从0开始数, 在第i的字符前加上char/string/...
*/
StringBuffer buffer2 = new StringBuffer("ABCDEFG");
buffer2.insert(0, "qqq");
System.out.println(buffer2); // qqqABCDEFG
buffer2.insert(5, 'z');
System.out.println(buffer2); // qqqABzCDEFG
/**
* 将指定位置的字符修改形成新的字符 - setCharAt(index, ch)
*/
StringBuffer buffer3 = new StringBuffer("ZZZZZ");
buffer3.setCharAt(3, 'A');
// buffer3.setCharAt(3, "A"); // 写的时候会报错
// buffer3.setCharAt(3, "AAA"); // 运行时会报错
System.out.println(buffer3); // ZZZAZ
}
}
JAVA基础 - StringBuffer
最新推荐文章于 2023-12-03 11:33:33 发布