day15 Java 常用类 StringBuffer类


在我最最难过的时候
给我温暖的眼神




字符串缓冲区:
存在缓冲区的可变字符串,默认缓冲容量为16字符
线程安全。代表着有同步操作出现时,数据是安全的,但效率不高
生活中哪些是线程安全的案例:
线程安全:银行业务,售票
不是安全问题的,效率高的:博客,视频会员

同 String 的区别
1、StringBuffer 的长度和内容是可变的,String 不可变
2、StringBuffer 会在堆内存中开辟一个缓冲区空间,每次改变会在缓冲区内进行,
      而不会再次为其开辟空间
      String 每创建新的字符串都会开辟新的空间



一、构造方法

1.1 StringBuffer()

创造初识无字符的字符串缓冲区,默认初始容量为16个字符

StringBuffer sb = new StringBuffer();
int capacity = sb.capacity();		//	查看初始容量
System.out.println(capacity);		//	16

1.2 StringBuffer(int capacity)

创造初识无字符的字符串缓冲区,并指定初识容量

StringBuffer sb = new StringBuffer(50);
int capacity = sb.capacity();		//	查看初始容量
System.out.println(capacity);		//	50

1.3 StringBuffer(String str)

创造指定初识字符的字符串缓冲区

StringBuffer sb = new StringBuffer(“fgh”);
System.out.pringln(sb);		//	fgh
int capacity = sb.capacity();		//初始容量
System.out.println(capacity);		//19  16+3
//	bcd + 3



二、StringBuffer 类的常用功能

2.1 public StringBuffer append()

可以把任意类型的数据添加到字符串缓冲区中
返回的是当前字符串缓冲区本身

StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer("fgh");
sb1.append(sb2).append(8).append('韭').append("菜盒子");
System.out.println(sb1);		//	fgh8韭菜盒子

2.2 public StringBuffer insert(int offset,String str)

在指定的索引 offset 上,插入字符串

返回的是当前字符串缓冲区本身

StringBuffer sb3 = new StringBuffer("fgh韭菜盒子");
sb1.insert(3,"qwy");
System.out.println(sb1);		//	fghqwy韭菜盒子

2.3 public StringBuffer deleteCharAt(int index)

删除指定索引位置 index 的字符
返回的是当前字符串缓冲区本身

StringBuffer sb3 = new StringBuffer("fgh1韭菜盒子");
sb3.deleteCharAt(3);
System.out.println(sb3);		//	fgh韭菜盒子

2.4 public StringBuffer delete(int start,int end)

删除指定索引位置 start 至 end 的字符串内容
左闭右开 [ start, end )
返回的是当前字符串缓冲区本身
如果 start 等于 end ,则不作任何更改

StringBuffer sb4 =new StringBuffer("fgh123韭菜盒子");
sb4.delete(3,6);
System.out.println(sb4);		//	fgh韭菜盒子

2.5 public StringBuffer replace(int start,int end,String str)

以字符串替换指定索引位置 start 至 end 的字符串内容
左闭右开 [ start, end )
返回的是当前字符串缓冲区本身
如果 start 等于 end ,则相当于插入
如果需要,此序列将被延长以容纳指定的字符串

StringBuffer sb5 =new StringBuffer("fgh123韭菜盒子");
sb5.replace(3,6,"fgh");
System.out.println(sb5);		//	fghfgh韭菜盒子
sb5.replace(3,3,"123");
System.out.println(sb5);		//	fgh123fgh韭菜盒子

2.6 public StringBuffer reverse()

字符串反转
左闭右开 [ start, end )
返回的是当前字符串缓冲区本身

StringBuffer sb6 = new StringBuffer("fgh韭菜盒子");
sb6.reverse();
System.out.println(sb6);		//	子盒菜韭hgf

2.7 String substring(int start)

截取功能,将索引 start 处至之后的字符串内容截取至一个新的 String 中
返回的是一个新字符串

StringBuffer sb7 = new StringBuffer("fgh韭菜盒子");
String s1 = sb7.substring(3);
System.out.println(s1);		//	韭菜盒子

2.8 String substring(int start)

截取功能,将索引 start 处至索引 end 之前的字符串内容截取至一个新的 String 中
左闭右开 [ start, end )
返回的是一个新字符串

StringBuffer sb8 = new StringBuffer("fgh韭菜盒子");
String s2 = sb8.substring(3,6);
System.out.println(s2);		//	韭菜盒

Guess you like

Origin blog.csdn.net/qq_41464008/article/details/120682255