Java Tips:使用Pattern.split替代String.split

String.split方法很常用,用于切割字符串,split传入的参数是正则表达式,它的内部是每次都comiple正则表达式,再调用Pattern.split方法:

public String[] split(String regex, int limit) {
    return Pattern.compile(regex).split(this, limit);
    }

  public String[] split(String regex) {
        return split(regex, 0);
    }

    因此,如果你调用String.split非常频繁的话,每次都重新编译正则表达式的代价很高,性能会受到很大影响,此时最好自己预编译Pattern,再调用Pattern.split方法为妙。

String []items=line.split(" ");

//替代为

static Pattern pattern=Pattern.compile(" ");

String []items=pattern.split(line,0);

PS.今天支付宝的蔡学镛大师到公司演讲,做的是《关于我的IT学习生活》的主题讲座,介绍了他的经历和经验,留下深刻印象的是他看起来很年轻,和照片相差比较大,并且上过3所大学,呆过两家同一个人开的公司并都倒闭了,非常有趣的经历。

文章转自庄周梦蝶  ,原文发布时间2009-05-21

时间: 2024-09-26 05:34:37

Java Tips:使用Pattern.split替代String.split的相关文章

Java String.split()特殊字符的使用

split在jdk中用法说明: String[] split(String regex) Splits this string around matches of the given regular expression. public String[] split(String regex) Splits this string around matches of the given regular expression. This method works as if by invoking

Java中String.split()用法小结_java

在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1.如果用"."作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split("."); 2.如果用"|"作为分隔的话,必须是如下写法,String.split("\\|"),这样才能正确的分隔开,不能用String.s

flash as string.split()字符切割函数详细

split(String.split 方法) public split(delimiter:String, [limit:Number]) : Array 在指定的 delimiter 参数出现的所有位置断开 String 对象,将其拆分为子字符串,然后以数组形式返回子字符串.如果使用空字符串 ("") 作为分隔符,则该字符串中的每个字符都将作为一个元素放入到数组中. 如果未定义 delimiter 参数,则会将整个字符串放入返回的数组的第一个元素中. 可用性:ActionScript

string-才发现JAVA木有String.Split 方法

问题描述 才发现JAVA木有String.Split 方法 额,在网上搜索程序逻辑的代码,发现这么一个方法,就很疑惑的发现在JAVA中没有找到替代品... String.Split (String[], StringSplitOptions) 主要说根据String[]所包含的规则串来拆解String,而不是根据单一给定的字符. 嗯,想在JAVA中试运行的话,这个方法怎么搞呢? 附我现在想做的事情:制作一个"规则翻译器",可以根据输入好的规则将任意一篇文字翻译为程序单元,然后通过解析这

String.split()方法出问题啦!!

问题描述 最近碰到了一个问题,很奇怪,始终都没弄明白是怎么回事public class Test {public static void main(String[] args) {String str = "2,,3,4,3,,,,,";String[]flag = str.split(",");System.out.println(flag.length); //为什么是 5 ???}}为什么上面出现的结果会是5呢??它等于是忽略了后面的逗号,但是为什么前面的那个

javascript String split方法误操作_javascript技巧

split定义和用法 split() 方法用于把一个字符串分割成字符串数组. 语法 stringObject.split(separator, howmany)参数 描述 separator 必需.字符串或正则表达式,从该参数指定的地方分割 stringObject. howmany 可选.该参数可指定返回的数组的最大长度.如果设置了该参数,返回的子串不会多于这个参数指定的数组.如果没有设置该参数,整个字符串都会被分割,不考虑它的长度. 返回值 一个字符串数组.该数组是通过在 separator

asp.net中String.Split 方法详细介绍

下边我们通过一些实例来说明下怎么使用(以下string words = "1,2.3,,4";):  Split(Char())  ?骰刈执??列,????列包含????绦???中,由指定的 Unicode 字元?列之元素所分隔的子字串.  代码如下 复制代码 1. public string[] Split(params char[] separator) string[] split = words.Split(new Char[] { ',' });//返回:{"1&q

详解Java正则表达式中Pattern类和Matcher类_java

前言 本文将介绍Java正则表达式中的Pattern类与Matcher类.首先我们要清楚指定为字符串的正则表达式必须首先被编译为pattern类的实例.因此如何更好的了解这两个类,是编程人员必须知道的. 以下我们就分别来看看这两个类: 一.捕获组的概念 捕获组可以通过从左到右计算其开括号来编号,编号是从1 开始的.例如,在表达式 ((A)(B(C)))中,存在四个这样的组: 1 ((A)(B(C))) 2 (A) 3 (B(C)) 4 (C) 组零始终代表整个表达式. 以 (?) 开头的组是纯的

java 正则表达式之pattern类 matcher类

一.正则表达式基础知识 我们先从简单的开始.假设你要搜索一个包含字符"cat"的字符串,搜索用的正则表达式就是"cat".如果搜索对大小写不敏感,单词"catalog"."Catherine"."sophisticated"都可以匹配.也就是说: 1.1 句点符号 假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以"t"字母开头,以"n"字母结束.另外