Java基础(四十一)-常用类库

StringBuffer类

背景:

1:String类是在所有项目中一定会使用到的一个功能类;

(1):每一个字符串的常量都属于一个String类的匿名对象;

(2):String有两个常量池:静态常量池,运行时常量池;

(3):String类对象实例化建议使用赋值的形式完成,这样可以直接将对象保存在对象池中以供下次重用。

在这里插入图片描述

2:StringBuffer类

在这里插入图片描述

3观察String和StringBuffer的对比

public class Test {
	public static void main(String[] args) {
		String str = "Hello " ;
		change(str) ;
		System.out.println(str);
	}
	public static void change(String temp) {
		temp += "World !" ;	// 内容并没有发生改变
	}
}
//输出结果是hello
public class JavaAPIDemo {
	public static void main(String[] args) {
		StringBuffer buf = new StringBuffer("Hello ") ;
		change(buf) ;
		System.out.println(buf.toString());
	}
	public static void change(StringBuffer temp) {
		temp.append("World !") ;	// 内容并没有发生改变
	}
}

public class Test {
	public static void main(String[] args) {
		StringBuffer buf = new StringBuffer("Hello ") ;
		change(buf) ;
		System.out.println(buf.toString());
	}
	public static void change(StringBuffer temp) {
		temp.append("World !") ;	// 内容发生改变
	}
}
//输出结果
Hello World !

在这里插入图片描述

3:分析一下已有的问题

public class Test {
	public static void main(String[] args) {
		String strA = "www.mldn.cn" ;
		String strB = "www." + "mldn" + ".cn" ;
		System.out.println(strA == strB);
	}
}
//输出结果:
//true

上述代码中,strB的对象内容不算是改变,对于现在的strB当程序编译之后会变为如下的形式,

StringBuffer buf = new StringBuffer();
buf.append(“www.”).append(“mldn”).append(“cn”);

所有的+在编译之后变成了StringBuffer中的append()方法,

4:StringBuffer与String类对象之间本来就可以直接互相转换

String类对象变为StringBuffer可以依靠StringBuffer类的构造方法或利用append()方法;

所有类对象都可以通过toString()方法将其变为String类型。

5:StringBuffer类中的一些方法

在这里插入图片描述

public class Test {
	public static void main(String[] args) {
		StringBuffer buf = new StringBuffer() ;
		buf.append(".cn").insert(0, "www.").insert(4, "mldn") ;
		System.out.println(buf);
	}
}
//www.mldn.cn

在这里插入图片描述

public class Test {
	public static void main(String[] args) {
		StringBuffer buf = new StringBuffer() ;
		buf.append("Hello World !").delete(6, 12).insert(6, "MLDN") ;
		System.out.println(buf);
	}
}
//Hello MLDN!

在这里插入图片描述

public class Test {
	public static void main(String[] args) {
		StringBuffer buf = new StringBuffer() ;
		buf.append("Hello World !") ;
		System.out.println(buf.reverse());
	}
}
//! dlroW olleH

6:StringBuilder

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值