Java中的常用类-StingBuffer类
现代的程序开发中需要依附于其所在的平台的支持,平台支持的功能越来越完善,开发也就简单。Java拥有着世界上最庞大的来发支持,除了丰富的第三方开发仓库外,JDK自身也提供了丰富的类库支持供开发者使用。
字符串实现了一种方便的数据存储结构,对于字符串Java也提供了多种支持,讲解StringBuffer、StringBuider、String三种的区别与联系。
1.StingBuffer类
在项目开发中String是一个必不可少的工具类,但是String类自身有一个最大的缺陷:内容一旦声明则不可改变。所以JDK中为了方便用户修改字符串的内容提供了StingBuffer类。
StingBuffer类并不像String类那样可以直接通过声明字符串常量的方式进行实例化,而是必须普通类对象使用一样,首先通过构造方法进行对象实例化,而后才可以调用方法进行处理。StringBuffer类常用方法如下:
- public StringBuffer();构造,创建一个空的StringbBuffer对象
- public StringBuffer();构造,将接受到String内容变为StringbBuffer内容
- public StringBuffer append(数据类型 变量) ,内容连接,等价于String 中的“+”操作。
- public StringBuffer insert(int offset,数据类型 变量) ,普通,在指定索引位置处插入数据
- public StringBuffer delete(int start,int end) ,普通,删除指定范围之内的数据
- public StringBuffer reverse() ,普通,内容反转
例子:
package usualclasslib;
public class JavaDemo1 {
public static void main(String[] args) {
StringBuffer buf=new StringBuffer("欢迎关注");//实例化StringBuffer
change(buf);//修改StringBuffer内容
String str=buf.toString();//将StringBuffer变为String实例
System.out.println(str);//输出最终数据
}
public static void change(StringBuffer temp){
temp.append("Java编程中心").append("祝你学习进步");//修改内容
}
}
//执行结果:欢迎关注Java编程中心祝你学习进步
本程序将实例化号的StringBuffer类对象传递到change方法中,而最终的执行结果可以发现,change()方法对StringBuffer类对象所做的修改得到了保存,所以得出结论:
StringBuffer的内容可以被修改
提示:关于字符串常量池的问题。
字符串常量池在使用“+”进行字符串连接最终会成为一个整体的String类对象,所以与直接声明的完整字符串的差别不大。
例子:观察静态常量池
package usualclasslib;
public class JavaDemo2 {
public static void main(String[] args) {
String str1="欢迎关注";
String str2="Java编程中心,";
String str3="祝你学习愉快";
String str4="欢迎关注Java编程中心,祝你学习愉快";
String str5=str1+str2+str3;
System.out.println(str4==str5);//输出最终数据
//执行结果:false
观察这个:
package usualclasslib;
public class JavaDeno2 {
public static void main(String[] args) {
String str1="欢迎关注";
String str2="Java编程中心,";
String str3="祝你学习愉快";
String str4="欢迎关注Java编程中心,祝你学习愉快";
//String str5=str1+str2+str3;
String str5="欢迎关注"+"Java编程中心,"+"祝你学习愉快";
System.out.println(str4==str5);//输出最终数据
}
}
//执行结果:true
实际上,用户使用“ String str5=“欢迎关注”+“Java编程中心,”+“祝你学习愉快”;”定义字符串的时候,程序编译之后的结果等价于以下操作:
StringBuffer buf=new StringBuffer();
buf.append(“欢迎关注”).append(“Java编程中心”).append(",祝你学习愉快");
- 总结:所有的“+”在编译之后都变为StringBuffer中的append()方法。
StringBuffer类中除了拥有可修改内容的能力外,还提供了一些String类所不具备的方法,下面分别通过具体的实例进行说明。
案例:插入数据:
`
package usualclasslib;
public class JavaDeno3 {
public static void main(String[] args) {
StringBuffer buf=new StringBuffer();
buf.append("祝你学习愉快").insert(0,""欢迎关注").insert(4,"Java编程中心");
System.out.println(buf);
}
}
//执行结果:欢迎关注Java编程中心,祝你学习愉快
![欢迎关注公众号:Java编程中心](https://img-blog.csdnimg.cn/20191019162510872.jpg)![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)