常用类库--15.1StringBuffer类

在项目开发中,String是一个必不可少的工具类,但是String类自身有一个最大的缺陷,内容一旦声明,则不可改变,所以在jdk中为了方便用户修改字符串的内容提供了StringBuffer类。
StringBuffer()类并不像String类那样可以直接通过声明字符串常量的方式进行实例化,而是必须像普通类对象使用一样,首先通过构造方法进行对象实例化,而后才可以调用方法执行处理。
StringBuffer类常用方法:
在这里插入图片描述
范例:修改StringBuffer内容
(连接,类似于String中的“+”)

public class JavaAPIDemo {
       public static void main(String[] args) {
		StringBuffer buf=new StringBuffer("www.");  //实例化StringBuffer
		change(buf);                              //修改StringBuffer内容
		String data=buf.toString();               //将StringBuffer变为String实例
		System.out.println(data);
	}

	private static void change(StringBuffer buf) {
		buf.append("类库.").append("com");
		
	}
}

执行结果

www.类库.com

用户使用”String str="a”+“b”+“c”,定义字符串时,程序编译后的结果等价于以下操作;
StringBuffer buf=new StringBuffer();
buf.append(“a.”).append(“b”).append(“c”);
范例:插入数据
(索引位置插入替换。)

public class JavaAPIDemo2b {
      public static void main(String[] args) {
		StringBuffer buf=new StringBuffer();
		buf.append(".com").insert(0, "www.").insert(4, "类库");
		System.out.println(buf);
	}
}

执行结果

www.类库.com

范例:删除指定范围中的内容
(索引前删后不删)

public class JavaAPIDemo2b3c {
       public static void main(String[] args) {
		StringBuffer buf=new StringBuffer();
		buf.append("hello java !").delete(6,11).insert(6, "lilei");
		System.out.println(buf);
	}
}

执行结果

hello lilei!

范例:字符串反转
(最有特点的方法)

package com.lxh.fifteenchapter;

public class javaAPIDemo4d {
	public static void main(String[] args) {
		StringBuffer buf=new StringBuffer();
		buf.append("hyguyhguhu");
		System.out.println(buf.reverse());
	}
	
}

执行结果

uhughyugyh

StringBuffer与StringBuilder

StringBuffer类是在jdk1.0提供的。jdk1.5提供了StringBuilder类。这两个类的功能类似,都是可修改的字符串类型,区别在于,StringBuffer类中的方法使用了synchronized关键字定义。所以StringBuffer是线程安全的,StringBuilder是非线程安全的方法,也就是线程不安全。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章