目录
String StringBuffer StringBuilder 三者的异同
String StringBuffer StringBuilder 三者的异同
String:不可变的字符序列,底层使用char[]数组储存
StringBuffer:可变的字符序列,线程安全,效率低,底层使用char[]数组储存
StringBuilder:可变的字符序列,线程不安全,效率高,底层使用char[]数组储存
扩容问题: 若果要添加的数据底层数据盛不下,那就需要扩容,默认情况下,扩容为
原来的2倍+2,同时将原有的数组的元素复制到新数组中
开发中建议使用:StringBuilder(int capacity)或StringBuffer(int capacity)对比 String,StringBuffer,StringBuilder的效率 从高到低:StringBuilder>StringBuffer>String
StringBuffer的常用方法:
StringBuffer append(xxx):提供很多的append()方法,用于字符串的拼接 StringBuffer delete(int start,int end):删除指定位置的内容 StringBuffer replace(int start,int end,String str):把[start,end)位置替换成str StringBuffer insert(int offset,xxx):在指定位置插入xxx StringBuffer reverse():把当前字符串序列逆转 public int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引 public String substring(int beginIndex,int endIndex):回一个新的字符串.它从beginIndex开始到endIndex(不包含)结束截取的字符串 public int length(): public char charAt(int n): public void setChatAt(int n,char ch):在指定的字符替换成ch 总结: 增:append(xxx) 删:delete(int start,int end): 改:replace(int start,int end,String str):/ setChatAt(int n,char ch): 查:charAt(int n): 插:insert(int offset,xxx): 长度:length():StringBuffer str=new StringBuffer("abc"); str.append(1); str.append('1'); System.out.println(str); //abc11 System.out.println(str.length()); //5 System.out.println(str.delete(2, 4)); //ab1 System.out.println(str.replace(2, 4, "false")); //abfalse System.out.println(str.insert(2, false)); //abfalsefalse System.out.println(str.reverse()); //eslafeslafba System.out.println(str.indexOf("a")); //3 System.out.println(str.substring(2, 4)); //la System.out.println(str.charAt(0)); //e str.setCharAt(0,'m'); System.out.println(str); //mslafeslafba