120_初识Java_StringBuffer类_学习
String,StringBuffer,StringBuilder的区别与联系
StringBuffer s = new StringBuffer("abcdefghijk");
s.append("增加增加");
s.delete(3,6);//删除[3-6) 不含第6位的字符
s.deleteCharAt(2);//删除第几位字符
s.insert(3,"--");//在下标为3的位置插入
s.replace(3,5,"哈哈哈哈哈");//替换
s.setCharAt(3,'-');//设置第3位字符
s.charAt(4);//查看第4位字符
s.substring(2,4);//截取的是[2,4) 不含位置4
1、StringBuffer常用方法
package com.llg.learnStringBuilder;
public class Learn3 {
//程序的入口
public static void main(String[] args) {
testStringBuffer();
}
public static void testStringBuffer(){
System.out.println("===========testStringBuffer================");
StringBuffer s = new StringBuffer("abcdefghijk");
//增加
s.append("增加增加");
System.out.println(s);//abcdefghijk增加增加
//删除
s.delete(3,6);//删除[3-6) 不含第6位的字符
System.out.println(s);//abcghijk增加增加
s.deleteCharAt(2);//删除第几位字符
System.out.println(s);//abghijk增加增加
//插入
StringBuffer s2 = new StringBuffer("0123456");
s2.insert(3,"--");//在下标为3的位置插入
System.out.println(s2);//012--3456
//替换
StringBuffer s3 = new StringBuffer("0123456");
s3.replace(3,5,"哈哈哈哈哈");
System.out.println(s3);//012哈哈哈哈哈56
StringBuffer s4 = new StringBuffer("0123456");
//设置
s4.setCharAt(3,'-');
System.out.println(s4);//012-456
//查
System.out.println(s4.charAt(4));//4
StringBuffer s5 = new StringBuffer("0123456");
//截取
System.out.println(s5.substring(2,4));//23 截取的是[2,4) 不含位置4
}
}
2、String,StringBuffer,StringBuilder的区别与联系
-String 类是不可变类:一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象销毁。
- StringBuffer类表示一个字符序列可变的字符串,可通过append,insert,reverse,setChartAt,setLength等方法改变其内容。调用toString方法将其转变为String
- JDK1.5新增了一个StringBuilder类,与StringBuffer相似,构造方法和方法基本相同。不同的是StringBuffer是线程安全的,而String Builder是线程不安全的,所以性能略高。
- 通常创建一个可变内容的字符串,应该优先考虑使用StringBuilder
- StringBuilder:JDK1.5开始 效率略高,线程不安全
- StringBuffer:JDK1.0开始 效率略低,线程安全