`
mmdev
  • 浏览: 12917315 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

StringBuilder类与与String类的比较

 
阅读更多

StringBuilder类与与String类的功能类似,它们有什么区别呢?
String 对象是不可改变的,每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间,如果是需要对字符串执行重复修改,就要不断的创建新的 String 对象。如果要修改字符串而不创建新的对象,则可以使用StringBuilder 类。如:在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。

package ceshi;
public class Test {
public static void main(String[] args) {
String text="";
long begintime=System.currentTimeMillis();
for(int i=0;i<10000;i++)
text=text+i;
long endtime=System.currentTimeMillis();
System.out.println("执行时间:" +(endtime-begintime));

StringBuilder buildertxt = new StringBuilder("");
begintime=System.currentTimeMillis();
for(int i=0; i<10000;i++)
buildertxt.append(i);
endtime=System.currentTimeMillis();
System.out.println("执行时间:" + (endtime-begintime));
}
}

输出的执行时间肯定是第一次大,i值越大差距越大。
通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的实例,如:
StringBuilder mystr = new StringBuilder("Welcome!");
StringBuilder的属性
Capacity:当前为实例分配的字符数量。默认容量是16.
Length: 对象内的字符串长度的值

StringBuilder的方法
Append:方法可用来将文本或对象的字符串表示形式添加到由当前 StringBuilder 对象表示的字符串的结尾处。
Insert:方法将字符串或对象添加到当前 StringBuilder 中的指定位置。如:bildertxt.insert(2,"insert");
replace(int start, int end, String str):用str替换StringBuilder中指定位置的字符。
StringBuilder.Remove:从当前 StringBuilder 对象中移除指定数量的字符。
delete(int start, int end)、deleteCharAt(int index):删除从start到end间的字符(不包括end)。
StringBuilder.reverse():倒序排列字符。
ToString( ):转换为字符串输出。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics