我正在尝试使用 StringTokenizer 按“,”拆分字符串,但无法获取整个值,标记计数显示 3 但仅打印两个元素,我在下面添加了我的代码 如果我尝试过其他两个输入 "Ravi,Tuti,786"- 相同的输出 "Ravi,Tuti,786,pincode"得到三个 token 不是最后一个
public class Tokenizer{
public static void main(String[] args){
String str = "Ravi,Tuti,786";//survival of fittest,journey to get job,update skill,try,get job";
StringTokenizer stk = new StringTokenizer(str,",");
System.out.println(stk.countTokens());
for(int i=0;i<=stk.countTokens();i++){
System.out.println(stk.nextToken());}
}
}
输出是
3
Ravi
Tuti
最佳答案
将 hasMoreTokens()
与 nextToken
一起使用:
public class Tokenizer{
public static void main(String[] args){
String str = "Ravi,Tuti,786";//survival of fittest,journey to get job,update skill,try,get job";
StringTokenizer stk = new StringTokenizer(str,",");
System.out.println(stk.countTokens());
while (stk.hasMoreTokens()) {
System.out.println(stk.nextToken());
}
}
}
您的方法的问题是您在 for
循环中运行 countTokens
,它在调用 nextToken
后发生变化。
如果你想使用for
循环,你需要将 token 计数保存到一个变量中:
int numTokens = stk.countTokens();
for (int i = 0; i < numTokens; i++) {
System.out.println(stk.nextToken());
}
关于java - 无法使用 StringTokenizer 获取所有 token 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956996/