`
sangeshitou
  • 浏览: 27586 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

string 切分的效率实验

阅读更多

正在作的项目要对一万个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操作效率高

 

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

分享到:
评论

相关推荐

    delphi 自带 StringReplace 慢, 替换 StringReplace ,高效率,秒杀 原版

    delphi 自带 StringReplace 慢, 替换 StringReplace ,高效率,秒杀 原版

    String和StringBuilder效率测试

    在Java编程语言中,`String`和`StringBuilder`都是用于处理字符串的重要类,但它们在处理方式和效率上有显著的区别。本资源中的代码是针对这两种类的效率进行测试的实例,旨在帮助开发者理解它们在不同场景下的性能...

    JAVA实验报告四(实现String类).doc

    Java 实验报告四(实现 String 类) 在本实验报告中,我们将实现 Java 中的 String 类,并了解其实现原理。 String 类是 Java 中一个非常重要的类,它提供了字符串操作的各种方法。在这里,我们将基于 ArrayList ...

    String和string区别以及string详解.doc

    但在性能敏感的场景下,可以直接调用`String`类的方法,如`String.IsNullOrEmpty()`,这样可以避免额外的类型转换,提升程序执行效率。 - 字符串相等性测试时,使用`string`比直接比较两个`String`对象更直观,因为...

    C语言头文件 STRING.H

    C语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING....

    StringtoList和StringtoMap和StringtoObject和StringtoArray

    Map&lt;String, String&gt; map = gson.fromJson(jsonString, new TypeToken&lt;Map&lt;String, String&gt;&gt;(){}.getType()); ``` 4. **String to Object** 如果JSON字符串代表的是一个自定义Java对象,你可以创建一个对应的类...

    分支与循环程序设计 将一个包含20个元素的数组STRING分成一个偶数数组STRING1和一个奇数数组STRING2

    在本实验中,我们将学习如何使用条件转移指令、串操作指令和循环指令来编写一个将一个包含20个元素的数组STRING分成一个偶数数组STRING1和一个奇数数组STRING2的程序。 二、实验要求 1. 掌握条件转移指令的使用...

    String对象创建问题

    在Java编程语言中,`String`对象的创建是开发者经常遇到的问题,因为它涉及到内存管理和效率。`String`类在Java中被广泛使用,因为它代表不可变的字符序列,这使得它在很多场景下非常安全。这里我们将深入探讨`...

    C#中char[]与string之间的转换 string 转换成 Char[]

    C#中char[]与string之间的转换 C#中char[]与string之间的转换是一种常见的操作,我们经常需要在这两种数据类型之间进行转换。今天,我们将探讨C#中char[]与string之间的转换,包括string转换成Char[]和Char[]转换成...

    string和char*

    string 和 char* 的区别和联系 在 C++ 编程中,字符串是一种常用的数据类型,string、CString 和 char*都是字符串的 представите...了解它们的区别和联系,可以更好地选择合适的字符串类型,提高编程效率。

    String[] list 相互转化

    ### String[] 与 List 相互转化 在 Java 编程语言中,`String[]` 数组和 `List` 集合之间的相互转换是非常常见的需求。这两种数据结构各有优势:数组提供了固定长度且访问效率高的特性,而列表则支持动态调整大小...

    List转换成String数组

    ### List转换成String数组 在Java编程中,我们经常需要对集合进行操作,尤其是在处理大量字符串数据时。本文将详细介绍如何将一个`List&lt;String&gt;`类型的集合转换为`String[]`数组,并通过不同的方法来实现这一过程。...

    String和string区别以及string详解

    总结来说,`String`(或`string`)在C#中是文本数据的主要载体,其不可变特性确保了代码的安全性和效率。在ASP.NET和SQL数据库操作中,`string`是构建动态查询和处理网络数据的关键元素。理解和熟练运用`string`类型...

    HexString和Base64String的相互转换

    `HexString`和`Base64String`是两种常见的二进制数据的文本表示形式。理解它们的特性和转换方法对于开发人员来说是非常基础且实用的知识。 首先,`HexString`(十六进制字符串)是一种将二进制数据表示为十六进制...

    public static String[] split(String s, String regex)

    public static String[] split(String s, String regex) s参数为待拆分字符串, regex参数有两种格式: 单字符的字符串(长度1),功能如下:split(“ab#12#453”, “#”) 返回带5个元素的数组:ab, #, 12, #, 453 ...

    list转换成string数组

    ### List转换成String数组 在Java编程语言中,经常需要将`List&lt;String&gt;`类型的数据转换为`String[]`数组类型,以便于进行某些特定的操作或适应...这种转换在实际开发中非常常见,掌握它对于提高编程效率有着重要意义。

    java中的String类常用方法解析(一)

    以上就是`String`类的一些常见方法,理解并熟练使用它们对于提升Java编程效率至关重要。在实际开发中,开发者通常会结合这些方法来处理字符串,实现各种文本操作。通过阅读和分析`TestString.java`文件,我们可以...

    StringAPI.java

    Java String 类型 API 测试代码 1.String和char[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) String类 String replace(char oldChar, ...

    c++string用法详解

    C++ String 用法详解 C++ 语言中的字符串处理一直以来都是一个棘手的问题,许多开发者都认为 C++ 的文本处理功能太麻烦,不方便使用。但是,随着 STL 的出现,C++ 的...掌握 string 类,可以极大提高开发效率和质量。

    Arduino项目开发 Strings_StringSubstring_StringSubstring.pdf

    - **效率**:虽然`String`类方便了字符串操作,但过度使用可能导致内存问题,尤其是当处理大量数据或频繁创建新`String`对象时。因此,尽量减少不必要的复制和使用`substring()`。 在实际的Arduino项目中,`String`...

Global site tag (gtag.js) - Google Analytics