16、字符串生成器

目录

(1)append()方法

(2)insert(int offset, arg)方法

(3)delete(int start , int end)方法


创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销

例1:在项目中创建类Jerque,在主方法中编写如下代码,验证字符串操作和字符串生成器操作的效率

public class Jerque {  //创建类

       public static void main(String[]args) {  //主方法
              String s="";  //定义空字符串
              //定义字符串执行操作的起始时间
              long starTime=System.currentTimeMillis();  //
              for(int i=0;i<10000;i++) {  //利用for循环执行10000次操作
                     s=s+i;  //循环追加字符串
              }
              long endTime=System.currentTimeMillis();  //定义对字符串操作后的时间
              long time=endTime-starTime;  //计算对字符串执行操作的时间
              System.out.println("String消耗时间:"+time);  //将执行的时间输出
              StringBuilder builder=new StringBuilder("");  //创建字符串生成器
              starTime=System.currentTimeMillis();  //定义操作执行前的时间
              for(int j=0;j<10000;j++) {  //利用for循环执行10000次操作
                     builder.append(j);  //循环追加字符
              }
              endTime=System.currentTimeMillis();  //定义操作后的时间
              time = endTime - starTime;  //追加操作执行的时间
              System.out.println("StringBuilder消耗时间:"+time);  //将操作时间输出
       }
}

运行结果:

通过这一实例可以看出,两种操作执行的时间差距很大。如果在程序中频繁地附加字符串,建议使用StringBuilder。新创建的StringBuilder对象初始容量是16个字符,可以自行指定初始长度。如果附加的字符超过可容纳的长度,则StringBuilder对象将自动增加长度以容纳被附加的字符。若要使用StringBuilder最后输出字符串结果,可使用toString()方法。利用StringBuilder类中的方法可动态地执行添加、删除和插入等字符串的编辑操作。该类的常用方法如下。

(1)append()方法

该方法用于向字符串生成器中追加内容。通过该方法的多个重载形式,可实现接受任何类型的数据,如int、boolean、char、String、double或者另一个字符串生成器等。

语法如下:

其中,content表示要追加到字符串生成器中的内容,可以是任何类型的数据或者其他对象。

(2)insert(int offset, arg)方法

该方法用于向字符串生成器中的指定位置插入数据内容。通过该方法的不同重载形式,可实现向字符串生成器中插入int、float、char和boolean等基本数据类型或其他对象。

语法如下:

  • offset:字符串生成器的位置。该参数必须大于等于0,且小于等于此序列的长度。
  • arg:将插入至字符串生成器的位置。该参数可以是任何的数据类型或其他对象

例2:向字符串生成器中指定的位置添加字符

(3)delete(int start , int end)方法

移除此序列的子字符串中的字符。该子字符串从指定的start处开始,一直到索引end -1处的字符,如果不存在这种字符,则一直到序列尾部。如果start等于end,则不发生任何更改。

语法如下:

  • start:将要删除的字符串的起点位置。
  • end:将要删除的字符串的终点位置。

例3:删除指定位置的子字符串

猜你喜欢

转载自blog.csdn.net/qq_25990967/article/details/128777839