3 回答

TA貢獻1840條經驗 獲得超5個贊
使用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());
}
}
}
您的方法的問題在于您正在循環中運行countTokens,在調用for后nextToken會發生變化。
如果要使用for循環,則需要將令牌計數保存到變量中:
int numTokens = stk.countTokens();
for (int i = 0; i < numTokens; i++) {
System.out.println(stk.nextToken());
}

TA貢獻1798條經驗 獲得超3個贊
你應該使用hasTokens()方法。
for( ; stk.hasMoreTokens() ; ) {
System.out.println(stk.nextToken());
}
添加回答
舉報