string 切分的效率实验

本文通过实验比较了使用string的split方法与正则表达式进行字符串切分的效率。结果显示,在处理大量统一格式的字符串时,split方法明显优于正则表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正在作的项目要对一万个string做切分,有以下两个可选方案:

1. 用string的split方法来切分

2. 用正则表达式来切分

 


想要知道哪种效率高我们还是来做个实验吧:

 

浏览器 firefox 3.6.3

OS       Kubuntu 9.04

 

测试计划:

先循环生成 100,000 个类似xxx,yyy,zzz的字符串,按逗号切分

 

1. stinrg 的split 方法切分:


实验代码:

<html>
        <head></head>
        <body>
        </body>
        <script type="text/javascript">
                        var num = 100000;
                        var ret = [];
                        for(var i = 0; i<num; i++){
                                ret [ret.length] = "id" + i + ",title" + i + ",name" + i;
                        }

                        var start = new Date().getTime();
                        var sep = ',';
                        for(var i = 0; i<ret.length ; i++){
                                ret[i].split(sep);
                        }
                        var end = new Date().getTime();

                        document.write("use split() to parse " + num + "strings costs " + (end - start) + " ms");
        </script>
</html>

 

此方案的测试结果是:

use split() to parse 100000strings costs 172 ms 

 

2. 用正则切分

 

实验代码:

<html>
        <head></head>
        <body>
        </body>
        <script type="text/javascript">
                        var num = 100000;
                        var ret = [];
                        for(var i = 0; i<num; i++){
                                ret [ret.length] = "id" + i + ",title" + i + ",name" + i;
                        }

                        var start = new Date().getTime();
                        var pattern = /(.*),(.*),(.*)$/;
                        for(var i = 0; i<ret.length ; i++){
                                pattern.exec(ret[i]);
                        }
                        var end = new Date().getTime();

                        document.write("use regx to parse " + num + "strings costs " + (end - start) + " ms");
        </script>
</html>

 

此方案的结果为:

use regx to parse 100000strings costs 1300 ms

 

 

由上面的结果可以看出split方案的效率远远高于正则的方案阿。

但是这个结果也不能说字符串的操作效率会比正则高,但是最起码我们可以得出这样结论:

字符串的规则切分还是split操作效率高

 

一切还是要以数据说话呵呵。虽然有点麻烦的说

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值