写在前面:
大家好,我是 花狗Fdog ,来自内蒙古的一个小城市,目前在泰州读书。
很感谢能有这样一个平台让我能够在这里分享所学所感。
我喜欢编程,喜欢代码,喜欢去做一个程序员。
努力学习,争取多年后,给亲人更好的生活。
QQ / WX:2506897252 欢迎交流。
1.先看一段代码
这段代码是照着书上敲的,书上运行结果显示STring 消耗时间:500多,StringBuilder消耗时间:1。
package number;
public class Xuexi {
public static void main(String[] args) {
String str="";
long starTime =System.currentTimeMillis();//定义对字符串执行操作的起始时间
for(int i=0;i<10000;i++) //利用循环执行10000次操作
{
str=str+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<=1000;j++)
{
builder.append(j); //循环追加字符
}
endTime =System.currentTimeMillis();//定义对字符串执行操作的起始时间
time=endTime-starTime;//定义对字符串执行操作的起始时间
System.out.println("StringBuilder消耗时间:"+time);
}
}
我运行的结果是下面的图。直接变成了0,哈哈。
可以看出,字符串追加器是普通追加的百倍,追加次数越多,这个比例可能更高,所以得出结论,如果在程序种频繁的附加字符串,jia建议使用字符串生成器,再往下看。
2.解释
1.创建字符串生成器
StringBuilder str = new StringBuilder(字符串)
append( content )
该方法向字符串生成器中追加内容,content表示要追加的内容。
StringBuilder builder =new StringBuilder("huagou");//创建字符串生成器
builder.append(hello);
insert(int offset ,arg)
该方法用于向字符串生成器指定的位置添加字符。
offset:字符串生成器的位置 arg:将插入至字符串生成器的位置
StringBuilder builder =new StringBuilder("huagou");//创建字符串生成器
builder.insert(5,"word");
delete(int start,int end)
该方法移除此序列的子字符串中的字符。
start:将要删除的字符串的起点位置 end:将要删除的字符串终点位置
StringBuilder builder =new StringBuilder("huagou");//创建字符串生成器
builder.delete(5,10);
若要使用STringBuilder最后输出字符串结果,可使用toString()。
StringBuilder builder =new StringBuilder("huagou");//创建字符串生成器
builder.delete(5,10);
System.out.println(builder.toString());
若有错误,欢迎指正批评,欢迎讨论。
每文一句:人的一生,有许多事情,是需要放在心里慢慢回味的,过去的就莫要追悔,一切向前看吧 任何打击都不足以成为你堕落的借口,即使你改变不了这个世界,你却依然可以改变自己,选择条正确的路永远走下去。