链表实现中的NumberFormatException

时间:2011-12-06 19:19:28

标签: java numberformatexception

我在Java中实现了一个循环列表。代码要求输入int值,我希望用"END"终止输入列表。代码可以工作,但会引发运行时异常:NumberFormatException

try{
    while(true){
        newnode=new Node();
        oldnode.next=newnode;
        newnode.prev=oldnode;               
        System.out.print("Enter value:");
        try{
            ctrlstr=bfr.readLine();
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
        if (ctrlstr=="END") break;
        newnode.val=Integer.parseInt(ctrlstr);
        oldnode=newnode;                        
        i++;    
    }
}
catch(Exception ex){
    ex.printStackTrace();
}

2 个答案:

答案 0 :(得分:3)

下面:

if (ctrlstr=="END")

您使用==比较字符串,equals始终检查引用标识。相反,您应该使用if (ctrlstr.equals("END"))

false

或者(如果ctrlstr为空时只需要if ("END".equals(ctrlstr)) 个结果)

Exception

一些额外的说明:

  • 抓住if通常是一个坏主意 - 你应该抓住更具体的例外
  • 抓取一个例外情况,然后在打印后再继续通常是一个坏主意
  • 如果适当缩进,您的代码将更具可读性
  • 如果总是使用{{1}}语句等大括号,您的代码将更具可读性

答案 1 :(得分:0)

尝试       而是ctrlstr.equals("END")