StringBuffer 类 & StringBuilder 类 String 长度大小不可变 StringBuffer 和 StringBuilder 长度可变 StringBuffer 线程安全 StringBuilder 线程不安全 StringBuilder 速度快 StringBuffer 类 & StringBuilder 类的对象能够被多次修改,并且不产生新的未使用对象(String会产生新的,并且比较耗费内存) StringBuffer 方法 1.指定字符串追加字符到这个字符序列 xxxx.append("520"); 2.把字符序列反转 xxxx.reverse()//不需要参数 3.移除字符序列中的字符串 xxxx.delete(2,5)//2为字符开始位置 5为结束位 4.把整数插入序列中,并且可以指定需要插入的位置 xxxx.insert(2,520);//2表示插入的位置,520是整数 将以字符串的形式插入 5.把序列中的子字符串B替换为指定的字符串A xxxx.replace(0,17,“520”)//0&17是起始终止位置 “520”是字符串 6.返回当前的容量 xxxx.capacity()//无需参数 7.返回序列中指定位置的字符值 xxxx.charAt(5) 8.确保容量至少等指定的最小值 xxxx.ensureCapacity(int minimumCapacity) 9.把字符串/字符复制到目标字符数组中 xxxx.getChars(start,end,char,start)后一个start是字符数组的起始位置 10.返回第一次出现的子字符串在该字符串中的位置 xxxx.indexOf(String str) 11.从指定位置处开始,返回第一次出现的子字符串在该字符串中的位置 xxxx.indexOf(String str,int fromIndex); 12.返回最右边出现的指定字符串在该字符串的位置 xxxx.lastIndexOf(String str); 13.从指定位置处开始 返回最右边出现的指定字符串在该字符串的位置 xxxx.lastIndexOf(String str,int fromIndex) 14.返回字符串的长度(和capacity不同) xxxx.length()//无需参数 15.在指定字符串的位置处设置ch(会把原位置处的字符替换掉) xxxx.setCharAt(int index,char ch); 16.设置字符序列的长度 xxxx.setLength(int newLength); 17.返回一个新的字符序列,该字符序列是此序列的子序列。 CharSequence ch =xxxx.subSequence(int start,int end); 18.返回一个新的 String,它包含此序列从指定位置之后的子序列 String str = xxxx.substring(int start); 19.返回此序列中数据的字符串表示形式。 xxxx.toString();