我编写了使用java扫描程序读取整数的方法。关闭扫描仪之前该方法正常工作,但是当我尝试关闭扫描仪时,程序在第一次扫描期间始终崩溃。
有谁知道这段代码有什么问题吗?
private int SINT()
{
System.out.println("Integer");
Scanner scan = new Scanner(System.in);
int p = 0;
try
{
p = scan.nextInt();
}
catch(Exception e)
{
System.out.println("Not integer");
}
scan.close();
return p;
}
答案 0 :(得分:3)
您始终可以在Java 1.7中提供的try-w / resources块中创建Scanner。由于它实现了AutoClosable
接口,因此您可以省略scan.close()
。
int p = 0;
try (Scanner scan = new Scanner(System.in))
{
p = scan.nextInt();
}
catch (Exception e)
{
System.out.println("Not integer");
}
return p;
答案 1 :(得分:1)
java.util.Scanner.throwFor的java.util.NoSuchElementException(未知 源)
当您没有任何
时尝试从输入读取令牌时,会导致异常因此,当您致电next时,您应该检查扫描仪是否有一个。
像这样:
if(scan.hasNextInt())
p =scan.nextInt();