亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法使用 StringTokenizer 獲取所有令牌元素

無法使用 StringTokenizer 獲取所有令牌元素

呼啦一陣風 2021-08-04 17:15:56
我正在嘗試使用 StringTokenizer 將字符串拆分為 "," 但無法獲取整個值,令牌計數顯示 3 但僅打印兩個元素,如果我嘗試使用其他兩個輸入“Ravi,Tuti,786”,則在下面添加了我的代碼 " - 相同的輸出 "Ravi,Tuti,786,pincode" 得到三個令牌而不是最后一個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());}}}輸出是3RaviTuti
查看完整描述

3 回答

?
慕斯709654

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());

}


查看完整回答
反對 回復 2021-08-04
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

你應該使用hasTokens()方法。


for( ; stk.hasMoreTokens() ; ) {

    System.out.println(stk.nextToken());

}


查看完整回答
反對 回復 2021-08-04
  • 3 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號