gpt4 book ai didi

java - StringTokenizer 是否对标记有任何最大长度?

转载 作者:行者123 更新时间:2023-11-29 07:33:11 27 4
gpt4 key购买 nike

我有一段代码,多年来一直有效,直到今天。调试后我意识到它没有正确收集最后一个标记。我认为是因为他的长度(超过 10k 个字符)。

代码:

StringTokenizer tokens = new StringTokenizer(myString,"&&&&&&&"); 
(...)
String s=tokens.nextToken();
//Do something with s
s=tokens.nextToken();
//Do something with s
s=tokens.nextToken();
//Do something with s

//Now it's time of last and biggest token
s=tokens.nextToken(); // --> s does not contain entire string

最佳答案

您以错误的方式使用了 StringTokenizer。您的分词器不会像人们预期的那样在 "&&&&&&&" 处拆分,而是在 '&' 处拆分,因为它只需要分隔符字符串中的一个字符来分隔标记。然后它会丢弃空标记,这就是您无论如何都会得到预期结果的原因。例如:

    StringTokenizer tokens = new StringTokenizer("a&&b&&c", "&&&");
while (tokens.hasMoreTokens()) {
System.out.println(tokens.nextToken());
}

这打印:

a
b
c

所以我怀疑在您的 10k token 中某处有一个 &。如果可能是这种情况,我建议 msaint 的建议,即使用 String.split(),如果您有能力修改旧代码,这是可行的方法。

关于java - StringTokenizer 是否对标记有任何最大长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39362973/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com