gpt4 book ai didi

java.util.Scanner 与 System.in 一起使用时的奇怪行为

转载 作者:行者123 更新时间:2023-11-30 04:32:01 24 4
gpt4 key购买 nike

这段简单的代码:

import java.util.Scanner;

public class TestScanner {

public static void main(String[] args){

Scanner sc1 = new Scanner(System.in);
int number1 = sc1.nextInt();
sc1.close();

Scanner sc2 = new Scanner(System.in);
int number2 = sc2.nextInt();
sc2.close();
}

}

总是给我这个错误:

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at mainpkg.TestScanner.main(TestScanner.java:14)

这个也行不通。这次又陷入了永无休止的循环!

import java.util.Scanner;

public class TestScanner {

public static void main(String[] args){

Scanner sc1 = new Scanner(System.in);
int number1 = sc1.nextInt();
sc1.close();

Scanner sc2 = new Scanner(System.in);
while(!sc2.hasNextInt())
;
int number2 = sc2.nextInt();
sc2.close();
}

}

为什么?

最佳答案

问题是 sc1.close(); 关闭了底层流。第二次,您尝试从关闭的流中读取数据,因此显然失败了。

关于java.util.Scanner 与 System.in 一起使用时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14410327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com