以下代码是我的程序的一部分,而不是全部。在lasTal()中,我让用户按数字顺序输入数字。一旦用户完成,他应该按Enter键,以便我的程序对输入的空字符串作出反应并返回数字列表。
public class Nastaord{
public static int bFinal, cFinal;
public static ArrayList<Integer> tallistaFinal;
private static ArrayList<Integer> lasTal(){
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> tallista = new ArrayList<Integer>(); //Det vi ska ha talföljden i
int i = 0; //räknare för tallista
while(true){
System.out.print("Enter number, or press enter if you are done: ");
String input = scanner.nextLine();
if(input == ""){
return tallista;}
int nytt_tal = Integer.parseInt(input);
tallista.add(nytt_tal);
i++;
}
我收到以下运行时错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.java:615)
at Nastaord.lasTal(Nastaord.java:18)
at Nastaord.main(Nastaord.java:45)
在我看来,程序从不输入空字符串的if语句,而是尝试转换字符串&#34;&#34;到一个int,这是不可能的。为什么这样做以及我该怎么做才能解决它?
答案 0 :(得分:0)
尝试使用"".equals(input)
代替input == ""
。