StringTokenizer返回null而不是String

问题描述 投票:0回答:2

代码段的目的是获取从文本文件中提取的一行文本,将其分成单独的标记,并将每个标记存储在数组的索引中。起初,我认为问题出在文本文件上,但是直接将字符串放入编辑器并不能解决问题。

带有诸如:的字符串>

“”鸡|无|野兽|任何| 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] + " ");
}

输出:

鸡没有野兽任何

代码段的目的是获取从文本文件中提取的一行文本,将其分成单独的标记,并将每个标记存储在数组的索引中。起初我以为问题出在...

string stringtokenizer
2个回答
0
投票

不推荐使用StringTokenizer,因此应使用字符串拆分方法,它适用于您的代码


0
投票

这里的主要问题是在countToken()循环的条件部分中不当使用for-因为每消耗一个下一个令牌,该数字就会减少。

© www.soinside.com 2019 - 2024. All rights reserved.