【问题标题】:Cannot take user input in main java method无法在主要 java 方法中接受用户输入
【发布时间】:2020-11-13 21:49:09
【问题描述】:
    }
    public static void main(String[] args) {
        Scanner userInputs = new Scanner(System.in);
 
        loadCurrencyCodes();
        showCurrencies();
        findMyCurrency();
        
        System.out.print("Try again (Y/N): ");
        String yesNo = userInputs.next();
    }

}

线程“main”中的异常重试(Y/N):java.util.NoSuchElementException

在 java.util.Scanner.throwFor(Unknown Source)

在 java.util.Scanner.next(未知来源)

在 CheckCurrencyCode.main(CheckCurrencyCode.java:69)

我试图从用户那里获取 y/n 的输入,当我运行代码时,我得到了上述异常。

【问题讨论】:

  • 您是否可以创建一个新的扫描程序并使用您选择不向我们展示的一种方法将其关闭?因为一旦你关闭了一个扫描器,你就关闭了它自动使用的流。而且一旦关闭 System.in,几乎不可能再打开它。
  • 啊,原来如此,谢谢!

标签: java methods main


【解决方案1】:

当它的工作结束时你应该关闭对象 userInput 对象:

System.out.print("Try again (Y/N): ");
String yesNo = userInputs.next();
userInputs.close();

【讨论】:

    【解决方案2】:

    您可以使用资源尝试,它会自动为您处理关闭流。

       try(Scanner userInputs = new Scanner(System.in)){
             System.out.print("Try again (Y/N): ");
                String yesNo = userInputs.next();
         }
    

    【讨论】:

      猜你喜欢
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      相关资源
      最近更新 更多