我重新学习JAVA有一段时间了,但我发现以前使用的Scanner库停止工作了,这是我之前知道的基本代码
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
int a;
int b;
Scanner odczyt = new Scanner (System.in);
a = odczyt.nextInt();
b = odczyt.nextInt();
System.out.println(a);
System.out.println(b);
}
}
现在它返回以下错误:
> Task :run FAILED
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at Matematyka.Main.main(Main.java:22)
据说库已更新,现在它的实现需要不同的代码?我正在使用 Apache NetBeans IDE 19
我尝试使用类 Scanner 以便应用程序询问用户输入值,但似乎以前使用的代码不起作用并返回错误。
确保用户提供的输入是 int 并注意其他。为了确保这一点,当您使用
odczyt.nextInt();
时,请确保您只需添加 odczyt.nextLine();
即可阅读整行。如果这不起作用,请确保您可以在 String temp = odczyt.nextLine();
中阅读整个答案,然后遍历字符串并找出整数值可能是什么。
String temp = odczyt.nextLine();
String number = "";
for(int i = 0; i<temp.length;i++)
if(temp.charAt(i).isDigit())
number = number + String.valueOf(temp.charAt(i));
int temp = 0;
try{
temp = Integer.parseInt(number);
}catch(NumberFormatException e){
// debug here
}
这是一个非常漫长而乏味的过程,但我觉得这可以帮助您重新掌握数字格式的工作方式。 (我将所有这些编码在文本框中,因此只需编辑任何拼写错误(如果有))这也是一种调试方法,因此有更有效的方法来做到这一点。