只能使用一次扫描仪

时间:2017-11-29 13:34:47

标签: java java.util.scanner user-input

我是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 个答案:

答案 0 :(得分: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();
}