【发布时间】:2014-03-09 07:37:55
【问题描述】:
我有以下代码将标记字符串以创建对象列表:
import java.util.StringTokenizer;
public class TestStringTokenizer {
private final static String INTERNAL_DELIMETER = "#,#";
private final static String EXTERNAL_DELIMETER = "#|#";
public static void main(String[]aregs){
String test= "1#,#Jon#,#176#|#2#,#Jack#,#200#|#3#,#Jimmy#,#160";
StringTokenizer tokenizer = new StringTokenizer(test, EXTERNAL_DELIMETER);
while(tokenizer.hasMoreElements()){
System.out.println(tokenizer.nextElement());
//later will take this token and extract elements
}
}
}
我期望的输出是
1#,#乔恩#,#176
2#,#杰克#,#200
3#,#吉米#,#160
我得到的是:
1
,
乔恩
,
176
2
,
杰克
,
200
3
,
吉米
,
160
如果我将内部分隔符更改为 , 它将正常工作 为什么会发生这种行为?
【问题讨论】:
-
StringTokenizer不将#|#作为一个分隔符,而是作为 3 个分隔符。请仔细阅读该类的 API 以了解其工作原理。
标签: java stringtokenizer