锁定老帖子 主题:StringTokenizer,洗洗睡吧
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-18
额,弱弱的问一下,将Pattern改在外面是如何改的。。。
|
|
返回顶楼 | |
发表时间:2009-09-18
我没记错的话ST遇到"|" 作为字段分隔符会死。
|
|
返回顶楼 | |
发表时间:2009-09-18
哈哈,洗洗睡还太早,这东西好象还有些用。
|
|
返回顶楼 | |
发表时间: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 写道 哈哈,洗洗睡还太早,这东西好象还有些用。
讨论技术,就严谨点。 有没有用,写点例子,具体来说说啊。 |
|
返回顶楼 | |
发表时间:2009-09-18
最后修改:2009-09-18
不支持正则风格,肯定要比使用了正则的要快了,如果你只是简单的分割,使用StringTokenizer还是很好的。从其他语言也可以见到类似的并存问题,如php的explode和
preg_split。 |
|
返回顶楼 | |
发表时间:2009-09-18
为什么sun都不鼓励用了~~
|
|
返回顶楼 | |
发表时间:2009-09-18
split是可以使用"|"的,写作split("\\|")就行了。
|
|
返回顶楼 | |
发表时间: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 写道 哈哈,洗洗睡还太早,这东西好象还有些用。
讨论技术,就严谨点。 有没有用,写点例子,具体来说说啊。 看来我还是没理解错啊,我试了下,感觉速度也没怎么快啊。。。好像还有慢的趋势。。 |
|
返回顶楼 | |
发表时间:2009-09-19
支持火星人,支持基础贴,给个良好!
|
|
返回顶楼 | |
发表时间:2009-09-19
相信随着JVM进步以及JDK的优化,采用基础的string.split写法会被不断优化,变快。
因此不是对性能非常苛刻的非常非常特殊的场合,没必要用token。 连胶水语言你都忍了,还受不了java么?如果要速度,c去。 |
|
返回顶楼 | |