StringBuffer类和StringBulider类
字符串的判空
一个字串为空有两种情况:1)空字符串 2)null
String str ="null";
if(str==null||str.isEmpty()){
//不可调换顺序
}
1.StringBuffer类
任何字符串常量都是String类,而String类的常量一旦声明努克更改。字符串的 + 操作更改的只是栈的指向,而且会产生大量的垃圾内存。于是引入了StringBuffer类和StringBuilder类
1.1String类和StringBuffer类的相互转化
String–>StringBuffer :
1)构造方法
2)append()方法
StringBuffer–>String:调用 toString( ) 方法
public class Test6 {
public static void main(String[] args) {
String str = "helloworld";
StringBuffer sb = new StringBuffer(str);//构造方法
System.out.println(sb);
StringBuffer sb2 = new StringBuffer();
sb2.append("hello").append("world");//append()方法
System.out.println(sb2);
}
}
1.2 StringBuffer类的其他方法
1.2.1 字符串反转
public synchronized StringBuffer reverse();
//字符串反转
StringBuffer sb1 = new StringBuffer("Helloworld");
System.out.println(sb1.reverse());
1.2.2 字符串的删除(删除指定范围内的数据)
public synchronized StringBuffer delete(int start,int end);
//字符串的删除
StringBuffer sb3 = new StringBuffer("helloworld");
System.out.println(sb3.delete(2,5));
1.2.3 字符串插入操作
public synchronized StringBuffer insert(int offert,各种数据了类型 b);
//字符串的插入操作
StringBuffer sb4 = new StringBuffer("hello");
System.out.println(sb4.insert(0, 123));//123hello
System.out.println(sb4.insert(5, "world"));//123heworldllo
2.StringBuilder类
当代码中出现字符串的+ 操作时,JVM内部会将String转为StringBuilder类,而后进行append处理;
3. String、StringBuffer、StringBuilder 类的区别
- 1.String常量不可变更,而StringBuffer类、StringBuilder类可以修改
- 2.StringBuffer采用同步处理,线程安全,性能较低
- 3.StringBuilder 采用异步处理,线程不安全、性能较高