我在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();
}
答案 0 :(得分:3)
下面:
if (ctrlstr=="END")
您使用==
比较字符串,equals
始终检查引用标识。相反,您应该使用if (ctrlstr.equals("END"))
:
false
或者(如果ctrlstr
为空时只需要if ("END".equals(ctrlstr))
个结果)
Exception
一些额外的说明:
if
通常是一个坏主意 - 你应该抓住更具体的例外答案 1 :(得分:0)
尝试
而是ctrlstr.equals("END")
。