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

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

Scanner.hasNext() 在線編譯時返回 false,但在 eclipse 上編譯時返回

Scanner.hasNext() 在線編譯時返回 false,但在 eclipse 上編譯時返回

人到中年有點甜 2023-03-23 16:34:16
我正在嘗試解決一個競爭性編碼問題,當我在 eclipse 或命令提示符下執行它時它工作正常,但是當我在網站上上傳解決方案時它沒有執行并在我第一次使用的行拋出 noSuchElementException來自用戶的輸入。我已經添加了導致問題的代碼部分。我試圖在不同的在線編譯器上使用 java 8 編譯器版本執行它,但它仍然會拋出相同的錯誤。我也嘗試過使用 BufferedReader 但出于某種原因,代碼將 k 的值打印為 -1。import java.util.Scanner;public class Solution {         public static void main(String[] args) {        Scanner sc=new Scanner(System.in);         if(!sc.hasNext()){            System.out.println("hasNext returns false");                  }        int k=sc.nextInt();          System.out.println(k);      }}輸出:hasNext returns false    Exception in thread "main" java.util.NoSuchElementException    at java.util.Scanner.throwFor(Scanner.java:862)    at java.util.Scanner.next(Scanner.java:1485)    at java.util.Scanner.nextInt(Scanner.java:2117)    at java.util.Scanner.nextInt(Scanner.java:2076)    at Solution.main(Solution.java:9)
查看完整描述

3 回答

?
智慧大石

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

在這里你正在檢查 sc.hasNext() 并且它會打印“hasNext returns false”但是在這之后你再次得到 nextInt() 它不會在那里因為在在線編譯器中你無法在運行時傳遞參數。


嘗試這個,


public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        if(!sc.hasNext()){

            System.out.println("hasNext returns false");          

        } else {

        int k=sc.nextInt(); 

         System.out.println(k);

        }

      }


查看完整回答
反對 回復 2023-03-23
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

也許您應該使用靜態方法,例如:

nextInt();
nextLine();
nextDouble();
nextBoolean();


查看完整回答
反對 回復 2023-03-23
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

我認為如果您正在使用一些在線編譯器,您手頭就沒有標準輸入流。只需像這樣模擬您的輸入:

Scanner sc = new Scanner("42");

盡管您檢查過hasNext()返回 false,但您仍在嘗試讀取導致異常的下一個 int。上面有一段代碼注釋java.util.Scanner.throwFor()似乎證實了這一點:

// If we are at the end of input then NoSuchElement;
// If there is still input left then InputMismatch


查看完整回答
反對 回復 2023-03-23
  • 3 回答
  • 0 關注
  • 272 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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