当前位置:  开发笔记 > 编程语言 > 正文

当输入很大时,字符串连接极其缓慢

如何解决《当输入很大时,字符串连接极其缓慢》经验,为你挑选了2个好方法。

像下面的代码这样的东西超级慢:

var str:String = ""
for (var i:Number = 0 ; i<1000000000000000000 ; ++i) {
    str += "someLongLongLongLongLongLongLongLongLongString";
}

StringBuilder在Java中,但似乎也没有类似AS.那么,你们如何处理大字符串串联?


更新:

谢谢大家的回答!

我刚刚编写了自己的测试程序.使用+=已经是最快的...什么是缓慢的是把它放在TextArea上...

我已经投票给大多数人,因为建议有意义:)尽管我的测试结果表明我的问题似乎有点问题,因为我要求更好的东西,那么已经是最好的:P



1> paxdiablo..:

是的,这很慢,即使有一个StringBuilder.我的问题是:你为什么要创建一个大小为46艾字节的字符串?

在某些时候,更传统的外部存储(即磁盘上)方法成为一个好主意,但你似乎已经通过了这一点(基于今天常用的磁盘阵列).

我一般都没有这个问题,因为我倾向于不使用字符串来存储这么大的东西.字符串通常用于较小的对象.你有什么是一个相当大的数据仓库,而不是名称或地址字段:-)



2> Blixt..:

我不能说我对ActionScript有经验,但对于ECMAScript,我发现数组可以帮助加速字符串连接(下面是JavaScript示例):

var sb = [];
for (var i = 0; i < 10000000000; i++) {
    sb.push('longlonglong');
    // In this particular case you can avoid a method call by doing:
    //sb[i] = 'longlonglong';
}
var str = sb.join('');

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有