锁定老帖子 主题:StringTokenizer,洗洗睡吧
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-20
弱弱的问句 如果需要分隔符也输出的话 用什么来替代StringTokenizer 更好
比如字符串"11;22;33"分割符为";" 希望输出的结果是"11 ; 22 ; 33" |
|
返回顶楼 | |
发表时间:2009-09-20
StringTokenizer .. sun喊你回家吃饭
StringTokenizer, 你妈妈喊你回家吃饭 |
|
返回顶楼 | |
发表时间:2009-09-20
刚买了本书,《java 软件结构与数据结构》(第三版) 最新的哦
栈的实现中就是用这个类举了个例子。 |
|
返回顶楼 | |
发表时间:2009-09-20
巩固下基础,过时的方法,很少用到。
不错,难得有心写下来,良好一票,哈哈。 |
|
返回顶楼 | |
发表时间:2009-09-21
|
|
返回顶楼 | |
发表时间:2009-09-21
blackartanan 写道 弱弱的问句 如果需要分隔符也输出的话 用什么来替代StringTokenizer 更好
比如字符串"11;22;33"分割符为";" 希望输出的结果是"11 ; 22 ; 33" 那就没必要分割了嘛... 或是自己再做一个字符串处理 |
|
返回顶楼 | |
发表时间:2009-09-21
上面有个同学说遇到这样一个问题,那天我也回复说,确实是这样
humaeks 写道 我没记错的话ST遇到"|" 作为字段分隔符会死。
觉得怪怪的,早上看了下String的split的实现。 public String[] split(String regex, int limit) { return Pattern.compile(regex).split(this, limit); } 原来是调用Pattern来实现的。所以应该比Pattern要稍慢一些。正如上面测试结果显示的那样。 又看了下Pattern的实现,里面用到了Matcher(处理正则表达式的),然后我就想,| 不可能出不来啊。 那天yuan来提醒我说,是不是我测试时将 | 直接写成了 |,忽略了它在正则表达式中是一个关键字啊,但我并没有,我写的是\\|。今天回头一看,我狂晕,将测试代码写错了。 写成了这样 String input = "This|is|just|a|test"; StringTokenizer st = new StringTokenizer(input,"|"); while(st.hasMoreTokens()){ String s = st.nextToken(); } Pattern pattern = Pattern.compile("\\|"); String [] str = pattern.split(input); for(int i=0;i<str.length;i++){ String s = str[i]; } 我说怎么输不出东西呢。囧。 改过来以后,是没有问题的。 StringTokenizer里因为是不能用正则表达式的,所以输入|就可以 而String的split方法,因为是用正则表达式实现效果,所以写的时候,必须用转义符号 \\|. |
|
返回顶楼 | |
发表时间:2009-09-21
kaka2008 写道 上面有个同学说遇到这样一个问题,那天我也回复说,确实是这样
humaeks 写道 我没记错的话ST遇到"|" 作为字段分隔符会死。
觉得怪怪的,早上看了下String的split的实现。 public String[] split(String regex, int limit) { return Pattern.compile(regex).split(this, limit); } 原来是调用Pattern来实现的。所以应该比Pattern要稍慢一些。正如上面测试结果显示的那样。 又看了下Pattern的实现,里面用到了Matcher(处理正则表达式的),然后我就想,| 不可能出不来啊。 那天yuan来提醒我说,是不是我测试时将 | 直接写成了 |,忽略了它在正则表达式中是一个关键字啊,但我并没有,我写的是\\|。今天回头一看,我狂晕,将测试代码写错了。 写成了这样 String input = "This|is|just|a|test"; StringTokenizer st = new StringTokenizer(input,"|"); while(st.hasMoreTokens()){ String s = st.nextToken(); } Pattern pattern = Pattern.compile("\\|"); String [] str = pattern.split(input); for(int i=0;i<str.length;i++){ String s = str[i]; } 我说怎么输不出东西呢。囧。 改过来以后,是没有问题的。 StringTokenizer里因为是不能用正则表达式的,所以输入|就可以 而String的split方法,因为是用正则表达式实现效果,所以写的时候,必须用转义符号 \\|. 如果是java me的话,st足够了。 |
|
返回顶楼 | |
发表时间:2009-09-22
写的不错。
|
|
返回顶楼 | |
发表时间:2009-09-22
不错,不错~这个性能问题还真没太注意啊!不错!!
|
|
返回顶楼 | |