链表实现中的 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();
}
I implemented a circular list in Java. The code asks for the int
values to be entered, and I wish to terminate the input list with an "END"
. The code works but throws a runtime exception: 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();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在这里:
您使用
==
比较字符串,它始终检查引用标识。相反,您应该使用equals
:ctrlstr 为 null 时您只想得到
false
结果)一些额外的注意事项:
code>Exception
通常是一个坏主意 - 您应该捕获更具体的异常if
语句等的大括号Here:
you're comparing strings using
==
, which always checks for reference identity. Instead, you should useequals
:or perhaps (if you want just a
false
result whenctrlstr
is null)A few extra notes:
Exception
is usually a bad idea - you should catch more specific exceptionsif
statements etc尝试
改为
ctrlstr.equals("END")
。Try
ctrlstr.equals("END")
instead.