[英]Does StringTokenizer have any max length on tokens?
我有一段代碼一直工作到今天。 調試后,我意識到最后一個令牌沒有正確收集。 我認為是因為他的身高(超過1萬個字符)。
碼:
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
。 您的標記生成器不會像期望的那樣在"&&&&&&&"
處分割,而是在'&'
處分割,因為它只需要從分隔符String中分隔一個字符來分隔標記。 然后,它會丟棄空令牌,這就是為什么無論如何都能獲得預期結果的原因。 例如:
StringTokenizer tokens = new StringTokenizer("a&&b&&c", "&&&");
while (tokens.hasMoreTokens()) {
System.out.println(tokens.nextToken());
}
打印:
a
b
c
因此,我懷疑您的1萬枚代幣中有一個&
。 如果可能的話,我建議使用msaint的建議,即使用String.split()
,如果您有能力修改舊代碼的話。
API的長度似乎沒有限制。 我試圖重現您的案件,但未能成功。 我從stringtokenizer中獲得了7個超級字符。 您可以先檢查您的字符串,然后嘗試分割,因為stringtokenizer是舊類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.