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); }