Java没有按原样返回函数值

时间:2015-03-29 14:58:01

标签: java

以下代码是我的程序的一部分,而不是全部。在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,这是不可能的。为什么这样做以及我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:0)

尝试使用"".equals(input)代替input == ""