1 StringBuffer类
1.1 概述
线程安全、同步(所以要判断,效率低)
StringBuffer和String的区别
*String是一个不可变的字符序列
*StringBuffer是一个可变的字符序列
1.2 构造方法
1.3 常用方法
1.3.1 输出、容量、长度
toString
1.3.2 添加功能
1.3.3 删除功能
对比上面添加功能
1.3.4 获取、截取功能
charAt(int index)
返回指定索引处的char
值。
1.3.5 替换和反转功能
2 StringBuffer和String对比
2.1 相互转换
2.1.1 String à StringBuffer
2.1.2 StringBuffer à String
2.2 数组转换成字符串
2.2.1 String
2.2.2 StringBuffer
public class Test1 {
/**
* * 需求:把数组中的数据按照指定个格式拼接成一个字符串
*
举例:
int[]arr = {1,2,3};
输出结果:
"[1,2, 3]"
用StringBuffer的功能实现
*/
publicstatic void main(String[] args) {
int[]arr = {1,2,3};
System.out.println(arrayToString(arr));
}
/*
* 将数组转换为字符串
* 1,返回值类型String
* 2,参数列表int[]
*
* arrayToString 将数组转换为字符串
* array2String 2与to的发音一样就用2替换了to,后来演变成了一种书写习惯
* dom4j domForJ
*/
publicstatic String arrayToString(int[] arr) {
StringBuffersb = new StringBuffer(); //创建字符串缓冲区对象
sb.append("["); //将[添加到缓冲区
//{1,2,3}
for(int i = 0; i < arr.length; i++) { //遍历数组
//sb.append(arr[i]+ ", "); //这样做没有]
if(i== arr.length - 1) {
sb.append(arr[i]).append("]"); //[1, 2, 3]
}else{
sb.append(arr[i]).append(","); //[1,2,
}
}
returnsb.toString();
}
}
2.3 字符串反转
2.3.1 String
2.3.2 StringBuffer
2.4 参数传递
public class Demo7_StringBuffer {
/**
基本数据类型的值传递,不改变其值
引用数据类型的值传递,改变其值
String类虽然是引用数据类型,但是他当作参数传递时和基本数据类型是一样的
*/
publicstatic void main(String[] args) {
Strings = "heima";
System.out.println(s);
change(s);
System.out.println(s);
System.out.println("---------------------");
StringBuffersb = new StringBuffer();
sb.append("heima");
System.out.println(sb);
change(sb);
System.out.println(sb);
}
publicstatic void change(StringBuffer sb) {
sb.append("itcast");
}
publicstatic void change(String s) {
s+= "itcast";
}
}
3 StringBuilder类
同StringBuffer
源代码文件:http://download.youkuaiyun.com/detail/qq_26553781/9835132