一、使用StringBuffer 类处理字符串
StringBuffer 也可以用来存储字符串,比String 类更高效的存储字符串的一种引用数据类型,特别是对字符串进行连接操作时,使用StringBuffer 类可以大大提高程序的执行效率。
1、使用StringBuffer 类
StringBuffer 类位于java.util包中,是String 类的增强类。
声明StringBuffer 类并初始化
StringBuffer stringBuffer = new StringBuffer("obge");
2、StringBuffer 类常用方法
String toString() : 转换为String 类型的对象并返回
StringBuffer append(参数); 追加字符串,将参数连接到字符串后并返回。
append() 方法与concat() 方法一样都是把一个字符串追加到另一个字符串后。
不同的是String类中只能将String类型的字符串追加到另一个后面,StringBuffer类中可以将任何类型的值追加到字符串后。
StringBuffer insert() : 插入字符串
字符串 . insert(位置,参数); //将参数插入到指定位置后并返回stringBuffer 类型,参数值可以是包括任何类型的值
在StringBuffer类中的定义
例子:
package com.obge.test1; public class StringStu2 { public static void main(String[] args) { StringBuffer stringBuffer = new StringBuffer("obge哥哥"); int num = 2223; //使用 append 追加 StringBuffer stringBufferAppend = stringBuffer.append(num); System.out.println("现在的字符串为:"+stringBufferAppend); //每隔2 位 添加 * for(int i= stringBufferAppend.length()-2;i>0;i=i-2){ stringBufferAppend.insert(i,"*"); } System.out.println("添加*后的字符串为:"+stringBufferAppend); } }
控制台输出内容:
二、使用StringBuilder 类处理字符串
StringBuilder 位于Java.lang 包中,是JDK 5.0 新增的类,是一个可变的字符序列。此类提供了一个与StringBuffer 兼容的API ,被设计用作StringBuffer的一个简易替换,在大多数实现中,比StringBuffer 执行要快。
StringBuilder 类处理字符串方法与StringBuffer类基本一致
注意哦 没有 synchronized,不提供同步,单线程的
三、String类、StringBuffer类以及StringBuilder类对比
String 类:是不可变的对象,在每次对String 类型进行改变时等同于生成了一个新的String 对象,然后指向新的String对象,所以经常改变内容的字符串最好不要用String类型,因为每次生成对象都会对系统性能产生影响。
StringBuffer类:时可变的字符串,在每次对StringBuffer对象进行改变时,会对StringBuffer 对象本身进行操作,而不是生成新的对象,在改变对象引用。所以在字符串经常改变的情况下推荐使用StringBuffer l类。
在字符串连接操作中,StringBuffer 类的执行效率比String类高
通过 + 号来进行追加子符串操作时,实际是通过建立一个StringBuffer 对象,让他调用append() 方法,最后在转化为String ,比StringBuffer 多了一些附加操作所以效率低,而且String对象的不可变性也比较影响性能。
StringBuilder 类:是单线程的不提供同步,理论上比StringBuffer效率更高。但是StringBuffer是线程安全的。
这和引用类型与基本类型的存储有点相似