Fir*_*Fox 15 java string tokenize
我使用标签(/ t)作为分隔符,我知道我的数据中有一些空字段,例如:
one->two->->three
Run Code Online (Sandbox Code Playgroud)
其中 - >等于标签.如您所见,空白字段仍被选项卡正确包围.使用循环收集数据:
while ((strLine = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(strLine, "\t");
String test = st.nextToken();
...
}
Run Code Online (Sandbox Code Playgroud)
然而,Java忽略了这个"空字符串"并跳过了这个领域.
有没有办法绕过这种行为并迫使java在空字段中读取?
npe*_*npe 16
Sun的bug数据库中StringTokenizer有一个关于此问题的RFE状态Will not fix.
对此RFE的评估表明,我引述:
随着
java.util.regex包装的增加1.4.0,我们基本上已经过时了StringTokenizer.出于兼容性原因,我们不会删除该类.但只是regex给你你需要的东西.
然后建议使用String#split(String)方法.
谢谢你.由于第一条评论,我找到了一个解决方案:是的,你是对的,谢谢你的参考:
Scanner s = new Scanner(new File("data.txt"));
while (s.hasNextLine()) {
String line = s.nextLine();
String[] items= line.split("\t", -1);
System.out.println(items[5]);
//System.out.println(Arrays.toString(cols));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24157 次 |
| 最近记录: |