亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了為什么關閉掃描儀似乎會損壞新的掃描儀?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

import java.util.Scanner;

public class Foo {
    public static void main(String[] args) {
        Foo foo = new Foo();
        foo.getNextToken();
        foo.getNextToken();
    }

    public void getNextToken() {
        Scanner s = new Scanner(System.in);
        while (true) {
            if (s.hasNext()) {
                System.out.println(s.nextLine());
                //s.close();
                return;
            }
        }
    }
}

當我嘗試運行上面的代碼時,它的工作方式可能與您預期的一樣。
每次我插入一行時,計算機都會粘貼下一行。

但是,如果我取消對s.lose()行的注釋,然后再次運行,我會得到以下行為:

由于某些原因,hasNext()方法連續返回FALSE,盡管有非常明顯的下一個參數。我嘗試了很多方法,但找不到任何解決方法。例如,如果我將代碼更改為只

public void getNextToken() {
        Scanner s = new Scanner(System.in);
        System.out.println(s.nextLine());
        s.close();
        return;
    }

然后,它再次適用于第一條語句,但隨后立即給出了NoSuchElementException異常。
當然,如果你不關閉第一個掃描儀,它工作得很好。

我不明白為什么關閉一臺掃描儀會影響另一臺掃描儀,但我聽說不關閉掃描儀是不好的做法,更重要的是,如果我不關閉,會出現惱人的黃色錯誤消息。有人能告訴我解決這個問題的方法嗎?為什么會發生這種情況?我可以在main方法中將scanner作為參數傳遞,也可以在那里關閉它,但這看起來有點混亂。

推薦答案

,因為您已關閉System.in。別干那事。不要關閉掃描儀。也不要創造新的。繼續用同一個就行了。它仍然可以工作。

在同一基礎輸入上使用多個掃描儀確實是不好的做法。您將丟失數據。

這篇關于為什么關閉掃描儀似乎會損壞新的掃描儀?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:關閉 掃描儀 損壞
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定