清空StringBuilder的方法

StringBuilder 没有提供clear或empty方法。
清空有3种方法:
1)新生成一个,旧的由系统自动回收
2)使用delete
3)使用setLength
将三种方法循环1000万次,代码:

1.public class sbbm {
2.
3.    static String a;
4.    static long time ;
5.    public static void main( String[] args ) throws Exception {
6.
7.         StringBuilder sb = new StringBuilder();
8.         StringBuilder sb3 = new StringBuilder();
9.
10.         time = System.currentTimeMillis();
11.          for( int i = 0; i < 10000000; i++ ) {
12.              StringBuilder sb2 = new StringBuilder();
13.              sb2.append( "someStr6ing" );
14.              sb2.append( "someS5tring2" );
15.              sb2.append( "some3Strin4g" );
16.              sb2.append( "so3meStr5ing" );
17.              sb2.append( "so2meSt7ring" );
18.              a = sb2.toString();
19.          }
20.          System.out.println( "Way2="+(System.currentTimeMillis()-time) );
21.
22.
23.        time = System.currentTimeMillis();
24.        for( int i = 0; i < 10000000; i++ ) {
25.            sb.delete( 0, sb.length() );
26.            sb.append( "someString" );
27.            sb.append( "someString2" );
28.            sb.append( "someStrin4g" );
29.            sb.append( "someStr5ing" );
30.            sb.append( "someSt7ring" );
31.            a = sb.toString();
32.        }
33.        System.out.println( "Way1="+(System.currentTimeMillis()-time) );
34.
35.        time = System.currentTimeMillis();
36.        for( int i = 0; i < 10000000; i++ ) {
37.
38.            sb3.setLength( 0 );
39.            sb3.append( "someStr55ing" );
40.            sb3.append( "some44String2" );
41.            sb3.append( "som55eStrin4g" );
42.            sb3.append( "some66Str5ing" );
43.            sb3.append( "so33meSt7ring" );
44.            a= sb3.toString() ;
45.        }
46.        System.out.println( "Way3="+(System.currentTimeMillis()-time) );
47.
48.
49.    }
50.}

注意append的字符串要都不相同,否则会因为java 的String  pool对结果造成影响(即3好于2)
结果:

1.Way2=9438
2.Way1=6281
3.Way3=6469
可以将各方法多重复几次,颠倒顺序,等
总体来看:方法2好于方法3好于方法1
时间: 2024-12-06 23:55:38

清空StringBuilder的方法的相关文章

C#.NET常见问题(FAQ)-如何清空stringbuilder

就红色的代码可以: System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("hello"); sb.Append("world"); Response.Write("Length:" + sb.Length); sb.Remove(0, sb.Length);//清空StringBuilder的方法 Response.Write("|"

清空StringBuilder的三种方法及效率

清空StringBuilder的三种方法及效率 大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilder时却不知道怎么清空,因为它没有clear或empty的方法.那用什么方法呢?在网上搜了一下大概一下三种方法. 1.Remove 例: StringBuilder val = new StringBuilder(); val.Append("...."); val.Remove(0,val

清空stringbuilder

大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilder时却不知道怎么清空,因为它没有clear或empty的方法.那用什么方法呢?在网上搜了一下大概一下三种方法. 1.Remove 例: StringBuilder val = new StringBuilder(); val.Append("...."); val.Remove(0,val.Length);//清空 2.Replace

清空session的方法

清空session的方法,常用来注销的时候清空所有的session. 方法一: Enumeration e=session.getAttributeNames(); while(e.hasMoreElements()){ String sessionName=(String)e.nextElement(); System.out.println("存在的session有:"+sessionName); session.removeAttribute(sessionName); } 方法

String,StringBuilder的方法,伪随机Random类

import java.nio.charset.Charset; public class StringDemo { public static void main(String[] args) { byte[]bt={'a','b','c'}; // String(byte[]bt,Charset charset); // 该构造方法根据给定的byte数组和字符集组成一个新的String对象 Charset charset=Charset.forName("utf-8"); Stri

Linux下清空缓冲区的方法

Linux下清空缓冲区的方法 C标准规定fflush()函数是用来刷新输出(stdout)缓存的.对于输入(stdin),它是没有定义的.但是有些编译器也定义了fflush( stdin )的实现,比如微软的VC.其它编译器是否也定义了fflush( stdin )的实现应当查找它的手册. GCC编译器没有定义它的实现,所以不能使用fflush(stdin)来刷新输入缓存.对于没有定义fflush(stdin)的编译器,可以使用fgets()函数来代替它(比用getchar().scanf()等

JavaScript中清空数组的方法

方法一 var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了 方法二 int[] ary = {1,2,3,4}; ary.length = 0; 方法三 var ary = [1,2,3,4]; ary = []; // 赋值为一个空数组以达到清空原数组 方法三效率最好

清空StringBuilder的三种方法

1.Remove例: StringBuilder val = new StringBuilder(); val.Append("...."); val.Remove(0,val.Length);//清空2.Replace StringBuilder val = new StringBuilder(); val.Append("...."); val.Replace(val.ToString(), "");//清空3.Length StringBu

Linux清空文件内容方法

Linux快速清空文件内容的方法 方法1 [[email protected] ~]# > filename 方法2 [[email protected] ~]# cat /dev/null > filename 方法3 [[email protected] ~]# echo /dev/null > filename 方法4 [[email protected] ~]# : > filename 注释:":"是一个占位符,不产生任何输出 方法5 [[email