StringBuffer与StringBuilder
StringBuffer与StringBuilder都是可变的字符序列
区别在于:
StringBufferjdk1.0出来的 优点:线程安全 弊端:耗费系统资
StringBuilder jdk1.5 线程不安全了 但是节省系统资源
String 线程不安全 是不可变的字符序列(不能修改字符串本身)
下面简单介绍几个方法:
1.拼接 append
private static void fun1() {
// 创建STringBuffer对象
StringBuffer sb = new StringBuffer();
// 容量默认 16
System.out.println(sb.capacity());
// 长度
System.out.println(sb.length());
// 拼接
StringBuffer buffer = sb.append("laozhao");
System.out.println(buffer.toString());
// StringBuffer 转换成字符串类型
String string = sb.toString();
System.out.println(string);
}
2.插入 修改 insert setCharAt
private static void fun2() {
// 插入
StringBuffer sb = new StringBuffer("wanglong");
sb.insert(4, "da").append("nb");
System.out.println(sb);
// 修改
sb.setCharAt(1, 'x');
System.out.println(sb);
}
3.删除 delete
private static void fun3() {
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("wanglong");
// 删除 留头不留尾[0,4)
// 结束坐标大于字符串的长度 相当于清空字符串
stringBuffer.delete(0, 4);
System.out.println(stringBuffer);
// 注意:传入的是要删除的字符角标
stringBuffer.deleteCharAt(2);
System.out.println(stringBuffer);
// 获取stringbuffer中的字符
char charAt = stringBuffer.charAt(1);
System.out.println(charAt);
// 字符数组 转化成 stringbuffer对象
char[] arr = { 'a', 'b', 'c' };
String valueOf = String.valueOf(arr);
System.out.println(valueOf);
StringBuffer sb = new StringBuffer(valueOf);
System.out.println(sb);
}
4.反转 reverse
private static void fun4() {
// 键盘输入一个字符串,将字符串反转
System.out.println("请输入字符串");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
// 转换成stringbuffer对象
StringBuffer sb = new StringBuffer(str);
sb.reverse();
System.out.println(sb.toString());
}
5.替换 replace
private static void fun5() {
// 替换
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("wanglong");
stringBuffer.replace(0, 4, "lixiao");
System.out.println(stringBuffer);
}