目录
String和StringBuffer的区别
1.String 长度固定,值不可改变
2.StringBuffer是一个长度可变的字符容器
StringBuffer的构造方法
1.StringBuffer() 构造一个空的字符容器,默认容量为16个字符
StringBuffer bb = new StringBuffer() //创建一个空的字符容器
获取容量
int capacity = bb.capacity();
System.out.println(capacity);
2.StringBuffer(int capacity) 构造一个不带字符,指定容量的字符串缓冲区
StringBuffer bb2 = new StringBuffer(100)
3.StringBuffer(String str) 指定字符串内容为字符串缓冲区对象
StringBuffer bb3 = new StringBuffer("Hello");
int capacity = bb3.capacity();
System.out.println(capacity) //打印21int length = bb3.length()
System.out.println(length) //打印5
StringBuffer的添加功能
1.append(...) 添加任意类型的数据
StringBuffer bb = new StringBuffer();
bb.append("Hello"); //不用取名字,返回的还是原来那个容器bb
bb.append(3.14);
System.out.println(bb); //打印Hello3.14
2.insert(int a,String b) 在a索引前添加b内容
StringBuffer bb = new StringBuffer();
bb.append("Hello");
bb.insert(1,"cc");
System.out.println(bb); //打印Hccello
System.out.println(bb.toString()); //打印Hccello,重写toString()方法,转换成字符串返回
StringBuffer的删除功能
1.deleteCharAt(int) 删除指定位置的字符
2.delete(int start, int end) 删除一段字符串,含头不含尾
StringBuffer的替换和反转功能
1.replace(int start, int end, String s) 替换内容,含头不含尾
StringBuffer bb = new StringBuffer();
bb.append("Helo123");
bb.replace(0,4,"456");
System.out.println(bb); //打印456123
2.reverse() 反转容器中的内容
StringBuffer bb = new StringBuffer();
bb.append("Helo123");
bb.reverse();
System.out.println(bb);
StringBuffer的获取索引
1.int indexOf (String str) 从头查找该字符串,在容器中第一次出现的索引,如果找不到就返回-1
2.int indexOf (String str,int fromIndex) 从指定索引处开始查找该字符串第一次出现的索引,如果找不到就返回-1 ,含头
3.int lastIndexOf (String str) 从后往前找
4.int lastIndexOf (String str,int fromIndex)
StringBuffer的截取功能
1.substring(int start) 从指定位置截取到末尾,返回的是字符串
StringBuffer bb = new StringBuffer();
bb.append("Helo123");
String o = bb.substring(1);
System.out.println(o); //打印elo123
2.substring(int start,int end) 从指定位置到结束位置,含头不含尾
StringBuffer bb = new StringBuffer();
bb.append("Helo123");
String o = bb.substring(1,4);
System.out.println(o); //打印elo
注意事项 :返回类型不再是容器,而是字符串
String和StringBuffer的相互转换
1.String转StringBuffer
String str = "Hello";
StringBuffer bb = new StringBuffer(str);
2.StringBuffer转String
StringBuffer bb = new StringBuffer("Hello");
String s = bb.toString(); //或bb.substring(0)
StringBuffer和StringBuilder的区别
1.StringBuffer安全,StringBuilder不安全
2.StringBuffer效率低,StringBuilder效率高
3.多线程操作大量数据,推荐用StringBuffer
单线程操作大量数据,推荐用StringBuilder
StringJoiner
创建字符容器,指定分隔符
使用前
import java.util.StringJoiner;
1.add(String s) 添加
StringJoiner bb = new StringJoiner("-");
String s = bb.add("sda").add("dasda").toString();
System.out.println(s); //打印sda-dasda
2.指定分隔符,前缀和后缀
StringJoiner bb = new StringJoiner("-", "[", "]");
String s = bb.add("sda").add("dasda").toString();
System.out.println(s); //打印[sda-dasda]