现在的位置: 首页 > 综合 > 正文

StringBuilder类

2013年11月22日 ⁄ 综合 ⁄ 共 2641字 ⁄ 字号 评论关闭
 使用StringBuilder类

String字符串对象的长度是固定的,它的内容不能被改变和编辑。每次使用“+”连接符来连接并生成新的字符串,都要在内存中创建新的字符串对象,并为该对象分配新的空间,这在字符串执行重复修改的情况下,将极大地增加系统开销。使用StringBuilder类可以动态的更改字符串的内容,如果有频繁执行的字符串操作,使用StringBuilder会让字符串的执行效率大大提高。
7.5.1  创建字符串生成器
创建StringBuilder类是通过不同的构造方法实现的,StringBuilder的常用构造方法如下。
l     StringBuilder()构造方法
该构造方法将创建一个空的字符串生成器。新创建的StringBuilder对象的初始容量为16个字符。
语法:
new StringBuilder()
new:Java语言的关键字,用于创建新的对象。
l     StringBuilder(int capacity)构造方法
该构造方法将创建一个指定初始空间大小的字符串生成器。
语法:
new StringBuilder(capacity)
new:Java语言的关键字,用于创建新的对象。
capacity:这是一个整型数字,它定义了字符串生成器的初始容量。
l     StringBuilder(String str)构造方法
该构造方法使用指定的字符串创建并初始化一个字符串生成器,它的初始内容就是指定的字符串的内容。
语法:
new StringBuilder(String str)
new:Java语言的关键字,用于创建新的对象。
str:这是一个字符串,它将作为新创建的字符串生成器的初始内容。
7.5.2  字符串生成器的应用
StringBuilder类是动态的字符串类,它可以动态的执行添加、删除、插入等字符串的编辑操作。该类的常用方法说明如下。
l     append()方法
该方法用于向字符串生成器中追加内容,这个方法有多个重载的实现,它们可以接受任何类型的数据,例如int、boolean、char、String、double或者另一个字符串生成器等。
语法:
append(content)
content:这个参数是准备追加到字符串生成器中的内容,它可以是任何类型的数据甚至是其他对象。
l     delete(int start, int end)方法
该方法用于从字符串生成器中删除start到end-1指定范围的子字符串。
语法:
delete(start,end)
start:将要删除的子字符串的起点位置。
end:将要删除的子字符串的终点位置。
例如从一个包含某个公司名称的字符串中删除省份信息,可以调用此方法从名称字符串中删除省份信息的起点位置到终点位置的子字符串。
StringBuilder builder = new StringBuilder("吉林省长春市明日科技");                         // 创建字符串生成器
builder.delete(0, 3);                                                                                            // 删除子字符串
System.out.println(builder);                                                                                        // 输出字符串
删除省份信息的公司名称如下:
长春市明日科技
l     deleteCharAt(int index)方法
该方法将删除字符串生成器中指定索引位置的字符。
方法:
deleteCharAt(index)
index:将要删除的字符在字符串生成器中的索引位置。
l     insert(int offset, arg)方法
该方法用于向字符串生成器中指定的位置插入数据内容。这些数据内容可以是int、float、char、boolean等基本类型与字符串或者其他对象。
语法:
insert(offset,arg)
offset:字符串生成器中的位置。
arg:将要插入到字符串生成器中的数据内容,该数据可以是任何数据类型。
l     length()方法
该方法用于返回字符串生成器中内容的长度。
语法:
length()
*  ch0710实例位置mr/07/sl/10
下面的实例对字符串操作和字符串生成器操作的效率进行了对比,并将对比结果输出到控制台中。实现步骤如下。
(1)创建TestStringBuilder类,将下面这段代码复制到类定义中。
例程11  代码位置:光盘/mr/07/sl/10/src/com/lzw/TestStringBuilder.java
public static void main(String[] args) {
    String str = "";
    StringBuilder builder = new StringBuilder();         // 创建字符串生成器
    long starTime,endTime;
    System.out.println("请等待……");
    //开始字符串操作
    starTime = System.currentTimeMillis();
    for (int i = 0; i < 10000; i++)
             str = str+i;
    endTime = System.currentTimeMillis();
    System.out.println("String消耗时间:" + (endTime - starTime));
    //开始StringBuilder操作
    starTime = System.currentTimeMillis();
    for (int i = 0; i < 10000; i++)
             builder.append(i+"");
    endTime = System.currentTimeMillis();
    System.out.println("StringBuilder消耗时间:" + (endTime - starTime));
    System.out.println("执行完毕");
}
(2)运行实例,在控制台中输出的对比结果如下:
请等待……
String消耗时间:891
StringBuilder消耗时间:15
执行完毕

 

抱歉!评论已关闭.