StringBuafer,StringBuilder总结
StringBuffer是字符串缓冲区。
是一个容器。
特点:
1,长度是可变化的。
2,可以字节操作多个数据类型。
3,最终会通过toString方法变成字符串。
C create U update R read D delete
1,存储。
StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,数据):可以将数据插入到指定index位置。
1 package com.itheima.day13; 2 3 public class StringBuilderDemo { 4 5 public static void sop( String str){ 6 System.out.println(str); 7 } 8 public static void Method_append(){ 9 StringBuilder sb=new StringBuilder(); 10 sop(sb.append("jjjjj").toString()); 11 sop(sb.insert(1, "bbbb").toString()); 12 } 13 public static void main(String[] args) { 14 Method_append(); 15 } 16 17 }
2,删除。
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字符。
1 package com.itheima.day13; 2 3 public class StringBuilderDelete { 4 5 6 public static void sop( String str){ 7 System.out.println(str); 8 } 9 public static void Method_delete(){ 10 StringBuilder sb=new StringBuilder(); 11 sb.append("abcd").append("efjklm").append("java"); 12 sop(sb.delete(1, 3).toString()); 13 sop(sb.deleteCharAt(5).toString()); 14 } 15 public static void main(String[] args) { 16 Method_delete(); 17 18 } 19 20 }
3,获取。
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
4,修改。
StringBuffer replace(start,end,string);
void setCharAt(int index, char ch) ;
1 package com.itheima.day13; 2 3 public class StringBuilderReplace { 4 5 6 public static void sop( String str){ 7 System.out.println(str); 8 } 9 public static void Method_replace(){ 10 StringBuilder str=new StringBuilder(); 11 str.append("javaDemo"); 12 sop(str.replace(1, 5,"zxdjava").toString()); 13 str.setCharAt(0, 'q'); 14 sop(str.toString()); 15 } 16 public static void main(String[] args) { 17 Method_replace(); 18 19 } 20 21 }
5,反转。
StringBuffer reverse();
package com.itheima.day13; public class StringBuilderReplace { public static void sop( String str){ System.out.println(str); } public static void Method_reverse(){ StringBuilder str=new StringBuilder(); str.append("javaDemo"); str.reverse(); sop(str.toString()); } public static void main(String[] args) { Method_reverse(); } }
6, 将缓冲区中指定数据存储到指定字符数组中。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
JDK1.5 版本之后出现了StringBuilder.
StringBuffer是线程同步。
StringBuilder是线程不同步。
以后开发,建议使用StringBuilder
升级三个因素: 1,提高效率。 2,简化书写。 3,提高安全性。