我遇到这个问题很多。当我多次使用扫描仪时,它不会从用户那里获得输入。Java多次使用扫描器
Scanner scan = new Scanner(System.in);
System.out.println("1---");
int try1 = scan.nextInt();
System.out.println("2---");
int try2 = scan.nextInt();
System.out.println("3---");
String try3 = scan.nextLine();
System.out.println("4---");
String try4 = scan.nextLine();
当运行该代码,导致它:
1 ---
2 ---
3 ---
4 ---
aa
正如您所看到的,它跳过了第3个输入。为什么发生这种情况?我通过使用新的扫描仪解决了这个问题,有时我有5-6个不同的扫描仪,看起来很复杂。 另一个问题是:有一个错误“资源泄漏:扫描从不关闭”。我很困惑。
您键入3“资源泄漏扫描永远不会关闭” ,然后是2,然后是1,然后是。 'int'是321。仍在等待处理。然后第一个'nextLine'调用读取,直到下一个,但之前您已经输入了,所以它返回该行(不包含任何内容)。考虑如果您键入“123 456 abc def ” –
immibis
2014-11-06 12:27:03
会发生什么情况,警告“资源泄漏:扫描永远不会关闭”。您需要关闭扫描。 scanner.close(); – 2014-11-06 12:27:54
[Java - Scanner - 跳过我最后一个nextLine()请求]的可能重复(http://stackoverflow.com/questions/24770531/java-scanner-skips-over-my-last-nextline-request) – 2014-11-06 12:39:48