相关疑难解决方法(0)

Java使用带有try-with-resources的扫描仪

我有两个版本的Java代码,它们会在用户输入“ q”版本1之前获取用户输入:

public class Test {
    public static void main(String[] args) {
        String input = "";
        while (!input.equals("q")) {
            Scanner scanner = new Scanner(System.in);
            System.out.print("Input: ");
            input = scanner.nextLine();
            System.out.println("Input was: " + input);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

版本2:

public class Test {
    public static void main(String[] args) {
        String input = "";
        while (!input.equals("q")) {
            try(Scanner scanner = new Scanner(System.in)){
                System.out.print("Input: ");
                input = scanner.nextLine();
                System.out.println("Input was: " + input);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

版本1可以正常工作,但版本2不能正常工作。也就是说,第一次读取用户输入后,会产生错误

Input: 12
Input was: 12Exception …
Run Code Online (Sandbox Code Playgroud)

java try-catch try-with-resources

3
推荐指数
1
解决办法
1472
查看次数

标签 统计

java ×1

try-catch ×1

try-with-resources ×1