慎用StringTokenizer,现在应使用String类的split方法

一般的网络程序中大量使用了StringTokenizer来分割后台传过来的字符串。但是这个class是有问题的,起码他不是按照我的想法来工作的,主要问题就是当我们定义的delimiter含有多个字符的时候,StringTokenizer认为这些字符都是delimiter,而不是这个字符串这个整体是一个delimiter 

比如这样的代码: 
StringTokenizer st  =   new  StringTokenizer( " mno;de9&1234;&*end " " ;&* " );
while  (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

 

 

这样的代码会发现打印出来的东西是:
mno
de9
1234
end

这显然是不行的,所以,我们遵照JDK中的建议,使用String类本身的split方法来代替,split中可以填写一个RE,功能要强大很多,不过对EasyCluster代码的修改也是比较痛苦的。使用split的时候,由于delimiter是一个RE,所以,要注意上述使用 ;&* 作为delimiter的时候,*要解引用,因为*是RE中的关键符号。如: 

String input  =   " mno;de9&1234;&*end " ;
String re 
=   " ;&\\* " ;
String[] token_array 
=  input.split(re);
for  ( int  i = 0 ; i < token_array.length; i ++ ) {
    System.out.println(token_array[i]);
}

 

 

转载于:https://www.cnblogs.com/super119/archive/2011/01/03/1924538.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值