有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java只能使用Scanner一次

我对java有点陌生,习惯于用Python编写代码。因此,当涉及到获取用户输入时,我总是对执行这样的任务需要多少行代码感到恼火。所以我尝试创建自己的类来简化这个过程。我想表演这样的节目:

input("This is written in the console: ")

控制台内部:

This is written in the console: |

以下是迄今为止的代码:

public static String input(String text) {
    Scanner scanner = new Scanner(System.in);
    System.out.print(text);
    String x =  scanner.nextLine();
    scanner.close();
    return x;
}

当我使用该类一次时,一切正常,但当我再次尝试使用它时,我会遇到一个异常:

public static void main(String[] args) {
    input("Input: ");
    input("Input 2: ");
}

输出:

Input: blaaa
Input 2: Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at NumberConverter.input(NumberConverter.java:124)
at NumberConverter.main(NumberConverter.java:7)

我真的不知道为什么总是这样。请帮帮我,谢谢


共 (1) 个答案

  1. # 1 楼答案

    多亏了“SomeJavaGuy”,我终于成功了:

    public class NumberConverter {
        private static Scanner scanner = new Scanner(System.in);
    
        public static String input(String text) {
            System.out.print(text);
            String x =  scanner.nextLine();
            return x;
        }
        public static void main(String[] args) {
            input("Write your Input: ");
            input("Write another Input: ");
            scanner.close();
    }