为什么我得到Number FormatException?

时间:2015-08-12 07:58:02

标签: java

我在代码大师上制作了一个程序。我在我的eclipse ide上获得了正确的输出,当我提交它时,CodeChef ide上显示的输出是:

For Next

以下是问题链接:https://www.codechef.com/problems/TEST

以下是我解决问题的方法: //生命世界和EveryThing

Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at Prog1.stop(Main.java:16)
at Prog1.main(Main.java:50)

3 个答案:

答案 0 :(得分:2)

原因:

你在做Integer.parseInt()。这会导致非有效字符串和null等的异常。

解决方案:

1)进行null检查

2)Try=Catch它并且在捕获中有必要。

答案 1 :(得分:2)

直接原因是您将null传递给Integer.parseInt。接下来你需要找出为什么正在发生......

你在每次迭代时创建一个新的BufferedReader包裹System.in ...这可能只是读取一行而不是一行,这意味着有些输入行被有效地吞噬了

只需在开始时创建一个 BufferedReader,然后将其用于整个程序。您还可以检查readLine的返回值是否为null,但由于这表示无效数据,因此只是按照它已经执行的方式进行投掷并不是很糟糕...

答案 2 :(得分:1)

首先检查if(s1!=null)然后int x=Integer.parseInt(s1);使用异常处理概念try catch

            try{
                   if(s1!=null){
                       int x=Integer.parseInt(s1);
                   }
               }catch(NumberFormatException e){

               }