我怎么能在执行close()方法后再次创建一个Scanner对象?

问题描述 投票:0回答:1

当我第二次输入它时,它会激活java.util.NoSuchElementException,如果我想在关闭sc之后再次使用Scanner,我该怎么办?另一个问题:如何在main方法中关闭在另一个java文件下创建的Scanner对象?

package test;        
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
        System.out.println(i);
        sc.close();

        Scanner sc2 = new Scanner(System.in);
        int j = sc2.nextInt();
        System.out.println(j);
        sc2.close();

    }
}
java exception runtime-error java.util.scanner nosuchelementexception
1个回答
0
投票

Q1。

使用多个扫描仪是一种不好的做法。

您可以使用同一个扫描仪完成所有任务。

    Scanner sc = new Scanner(System.in);

    int i = sc.nextInt();
    System.out.println(i);

    int j = sc.nextInt();
    System.out.println(j);

    sc.close();

Q2。

如果要在多个类中使用Scanner,可以执行以下操作

static final Scanner sc = new Scanner(System.in);

在一个类中创建静态扫描程序。然后您可以从其他类导入和使用它。

© www.soinside.com 2019 - 2024. All rights reserved.