一.StringBuffer类和StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
二.StringBuffer类
序号 | 方法描述 |
---|---|
1 | public StringBuffer append(String s) 将指定的字符串追加到此字符序列。 |
2 | public StringBuffer reverse() 将此字符序列用其反转形式取代。 |
3 | public delete(int start, int end) 移除此序列的子字符串中的字符。 |
4 | public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。 |
5 | replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。 |
//创建一个字符串缓冲区对象。用于存储数据。 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它可以改变字符序列的长度和内容。
三.对象的方法链式调用
调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法
//创建一个字符串缓冲区对象。用于存储数据。 StringBuffer sb = new StringBuffer(); //添加数据。不断的添加数据后,要对缓冲区的最后的数据进行操作,必须转成字符串才可以。 String str = sb.append(true).append("hehe").toString();
四.StringBuffer练习
//int[] arr = {34,12,89,68};将一个int[]中元素转成字符串 格式 [34,12,89,68] 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(); }