代码段的目的是获取从文本文件中提取的一行文本,将其分成单独的标记,并将每个标记存储在数组的索引中。起初,我认为问题出在文本文件上,但是直接将字符串放入编辑器并不能解决问题。
带有诸如:的字符串>
“”鸡|无|野兽|任何| 0 | 1 | 1 |嘿鸡!“
带分隔符的StringTokenizer对象|返回前四个标记作为正确的字符串,但对于其余四个返回null。
有趣的是,另一个字符串:
“ Gnoll | None | General | Any | 2 | 2 | 2 | Taunt | Taunt”
将前五个标记作为正确的字符串返回,但对其余四个标记也返回null。
如果问题出在最后四个标记上,为什么StringTokenizer以这种方式返回null?
代码:
String[] parameter = new String[10]; String rawTxt = "Chicken|None|Beast|Any|0|1|1|Hey Chicken!"; StringTokenizer t = new StringTokenizer(rawTxt, "|"); for (int i = 0; i < t.countTokens(); i++) { parameter[i] = t.nextToken(); System.out.print(parameter[i] + " "); }
输出:
鸡没有野兽任何
代码段的目的是获取从文本文件中提取的一行文本,将其分成单独的标记,并将每个标记存储在数组的索引中。起初我以为问题出在...
不推荐使用StringTokenizer,因此应使用字符串拆分方法,它适用于您的代码
这里的主要问题是在countToken()
循环的条件部分中不当使用for
-因为每消耗一个下一个令牌,该数字就会减少。