论坛首页 Java企业应用论坛

StringTokenizer,洗洗睡吧

浏览 24197 次
该帖已经被评为良好帖
作者 正文
   发表时间:2009-09-18  
额,弱弱的问一下,将Pattern改在外面是如何改的。。。
0 请登录后投票
   发表时间:2009-09-18  
我没记错的话ST遇到"|" 作为字段分隔符会死。
0 请登录后投票
   发表时间:2009-09-18  
哈哈,洗洗睡还太早,这东西好象还有些用。
0 请登录后投票
   发表时间:2009-09-18  
zhouxiang_fly 写道
额,弱弱的问一下,将Pattern改在外面是如何改的。。。

循环外面。
只用一个Pattern
然后当成参数传进去。这就是dennis_zane大哥说的缓存吧。
public static void test4(Pattern pattern){  
    String input = "This is 1 just a test";  
    String [] str = pattern.split(input);  
    for(int i=0;i<str.length;i++){  
        String s = str[i];  
    }  
}
public static void main(String [] args){ 
    Pattern pattern = Pattern.compile("\\s{1}");
    start = System.currentTimeMillis();  
    for(int i=0;i<100000;i++){  
        test4(pattern);  
    }  
    end = System.currentTimeMillis();  
    System.out.println("Pattern: "+(end-start)); 
}

明白?
humaeks 写道
我没记错的话ST遇到"|" 作为字段分隔符会死。

刚试了下,确实是这样的。
不知道为什么。有空了看下源代码。

treblesoftware 写道
哈哈,洗洗睡还太早,这东西好象还有些用。

讨论技术,就严谨点。
有没有用,写点例子,具体来说说啊。
0 请登录后投票
   发表时间:2009-09-18   最后修改:2009-09-18
不支持正则风格,肯定要比使用了正则的要快了,如果你只是简单的分割,使用StringTokenizer还是很好的。从其他语言也可以见到类似的并存问题,如php的explode和
preg_split。
0 请登录后投票
   发表时间:2009-09-18  
为什么sun都不鼓励用了~~
0 请登录后投票
   发表时间:2009-09-18  
split是可以使用"|"的,写作split("\\|")就行了。
0 请登录后投票
   发表时间:2009-09-18  
kaka2008 写道
zhouxiang_fly 写道
额,弱弱的问一下,将Pattern改在外面是如何改的。。。

循环外面。
只用一个Pattern
然后当成参数传进去。这就是dennis_zane大哥说的缓存吧。
public static void test4(Pattern pattern){  
    String input = "This is 1 just a test";  
    String [] str = pattern.split(input);  
    for(int i=0;i<str.length;i++){  
        String s = str[i];  
    }  
}
public static void main(String [] args){ 
    Pattern pattern = Pattern.compile("\\s{1}");
    start = System.currentTimeMillis();  
    for(int i=0;i<100000;i++){  
        test4(pattern);  
    }  
    end = System.currentTimeMillis();  
    System.out.println("Pattern: "+(end-start)); 
}

明白?
humaeks 写道
我没记错的话ST遇到"|" 作为字段分隔符会死。

刚试了下,确实是这样的。
不知道为什么。有空了看下源代码。

treblesoftware 写道
哈哈,洗洗睡还太早,这东西好象还有些用。

讨论技术,就严谨点。
有没有用,写点例子,具体来说说啊。



看来我还是没理解错啊,我试了下,感觉速度也没怎么快啊。。。好像还有慢的趋势。。
0 请登录后投票
   发表时间:2009-09-19  
支持火星人,支持基础贴,给个良好!
1 请登录后投票
   发表时间:2009-09-19  
相信随着JVM进步以及JDK的优化,采用基础的string.split写法会被不断优化,变快。

因此不是对性能非常苛刻的非常非常特殊的场合,没必要用token。

连胶水语言你都忍了,还受不了java么?如果要速度,c去。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics