創(chuàng)建成功的字符串對(duì)象,其長(zhǎng)度是固定的,內(nèi)容是不能被修改和編輯。雖然使用"+"可以達(dá)到增加新字符或字符串的目的,但"+"會(huì)產(chǎn)生一個(gè)新的String實(shí)例,會(huì)在內(nèi)存中創(chuàng)建新的字符串對(duì)象。如果重復(fù)地對(duì)字符串進(jìn)行修改,將極大地增加系統(tǒng)開銷。J2SE自5.0增加了可變的字符序列String-Builder類,大大地提高了頻繁增加字符串的效率。下面看個(gè)簡(jiǎn)單的例子。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
public class Jerque { /** * 比較一般情況下的字符串生成器,和String-Builder所耗的時(shí)間 */ public static void main(String[] args) { // TODO Auto-generated method stub String str = "" ; long startTime1 = System.currentTimeMillis(); for ( int i = 0 ; i< 10000 ; i++) { str = str +i; } long endTime1 = System.currentTimeMillis(); long time1 = endTime1 - startTime1; System.out.println( "字符串1消耗時(shí)間:" + time1); StringBuilder builder = new StringBuilder( "" ); long startTime2 = System.currentTimeMillis(); for ( int i= 0 ;i< 10000 ;i++) { builder.append(i); } long endTime2 = System.currentTimeMillis(); long time2 = endTime2 - startTime2; System.out.println( "字符串2消耗時(shí)間:" + time2); } } |
字符串1消耗時(shí)間:1210
字符串2消耗時(shí)間:3
總結(jié):
1. 用JAVA自帶的字符序列String-Builder類,無疑大大提高了效率。
2. 此類常用的方法如下:
a. append(content)方法
b. insert(int offset,arg)方法
StringBuilder b = new StringBuilder("Hello");
b.insert(5,"World!");
System.out.println(b.tostring());
c. delete(int start,int end)方法
StringBuilder d = new StringBuilder("StringBuilder");
d.delete(5,10);
System.out.println("d.toString()");