我使用一个标签(/吨)作为分隔符,我知道有我的数据,例如一些空字段:的Java StringTokenizer.nextToken()跳过空字段
one->two->->three
在哪里 - >等于标签。正如你所看到的,一个空的字段仍然被标签正确包围。 数据使用循环收集:
while ((strLine = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(strLine, "\t");
String test = st.nextToken();
...
}
然而,Java的忽略这个“空字符串”,并跳过领域。
有没有办法规避这种行为并强制java读空字段?
使用'string.split(“\ t”的)'代替。 – 2012-07-10 08:23:33
来自String文档的String tokenizer“StringTokenizer是一个遗留类,为了兼容性的原因,虽然在新代码中不鼓励使用它,但建议任何寻求这种功能的人都使用String的split方法或java.util.regex取而代之。“ – Inquisitive 2012-07-10 08:35:26
只看起来,它看起来像使用'string.split(“\ t”)'不会返回任何尾随空的标记。如果这很重要,请使用'string.split(“\ t”,-1)'。 – Oded 2015-11-21 18:10:11