一、StringBuffer类
1、概念
StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
2、方法
演示:
创建一个字符串缓冲区对象。用于存储数据。 StringBuffer sb = new StringBuffer(); sb.append("haha"); //添加字符串 sb.insert(2, "it");//在指定位置插入 sb.delete(1, 4);//删除 sb.replace(1, 4, "cast");//替换指定范围内的内容 String str = sb.toString();
注意:
append、delete、insert、replace、reverse方法调用后,返回值都是当前对象自己,所以说,StringBuffer它可以改变字符序列的长度和内容。
其他:
public static void main(String[] args) { StringBuffer buffer=new StringBuffer("you"); System.out.println(buffer); StringBuffer buffer1=new StringBuffer(); System.out.println(buffer1); //追加 buffer.append(" are"); buffer.append(" beautifal "); buffer.append(true); buffer.append(56); System.out.println(buffer); //delate包头不包尾 buffer.delete(3, 14); System.out.println(buffer); //插入 buffer.insert(3, " are beauti"); System.out.println(buffer); //替换(包头不包尾) buffer.replace(0, 10, " haha "); System.out.println(buffer); //反转 buffer.reverse(); System.out.println(buffer); //转成字符串 String str=buffer.toString();//转成字符串 System.out.println(str); StringBuffer buffer2=new StringBuffer(str);//转回buffer }
练习:
public static String toString_2(int[] arr) { StringBuffer sb = new StringBuffer(); sb.append("["); for (int i = 0; i < arr.length; i++) { if(i!=arr.length-1){ sb.append(arr[i]+","); }else{ sb.append(arr[i]+"]"); } } return sb.toString(); }
二、StringBuilder类
StringBuilder和StringBuffer的区别
StringBuilder它也是一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。
该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。
如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
但是,StringBuilder较StringBuffer,安全程度要低。