线程“main”中的异常java.lang.NumberFormatException:null

时间:2013-11-08 02:14:15

标签: java exception null

我已尽力尝试这一切,但我仍然无法找到任何解决方案,这是错误,我试图改变第16行中的空值,但是无济于事,我是一个新的Java程序员,所以我没有太多使用这种语言的经验,所有帮助赞赏!

线程“main”java.lang.NumberFormatException中的异常:在DebugEight4.main的java.lang.Integer.parseInt(Integer.java:527)的java.lang.Integer.parseInt(Integer.java:454)中为null (DebugEight4.java:11)​​

import javax.swing.*;
public class DebugEight4
{
 public static void main(String[] args) 
{
  int x = 0, y;
  String array[] = new String[100];
  String entry;
  int i = Integer.parseInt(array[1]);
  final String STOP = "XXX";
  StringBuffer message = new
      StringBuffer("The words in reverse order are\n");

  entry = JOptionPane.showInputDialog(null,
    "Enter any word\n" +
    "Enter " + STOP + " when you want to stop"); 
  while(!(entry.equals(STOP)))
  {
     array[x] = entry;
     x++;
     entry = JOptionPane.showInputDialog(null,
        "Enter another word\n" +
        "Enter " + x + " when you want to stop"); 
  }
  for(y = 0; y > 0; ++y)
  {
     message.append(array[y]);
     message.append("\n");
  }
  JOptionPane.showMessageDialog(null, message);
 }
}

2 个答案:

答案 0 :(得分:1)

除空字符串外,数组中没有任何内容。

  String array[] = new String[100];
  //...
  int i = Integer.parseInt(array[1]);

无法将空字符串解析为整数。

例如:

  String array[] = new String[100];     <<-- Create an array of empty string
  array[1] = "1";                       <<-- set second item in array to a parseable value
  int i = Integer.parseInt(array[1]);   <<-- Parse the value out

答案 1 :(得分:0)

错误是由以下代码引起的:

 int i = Integer.parseInt(array[1]);

在您的代码中,您只需声明String数组,如下所示。但是数组中的所有元素都为null。

 String array[] = new String[100];

请先启动它们。

实际上,变量i不在上下文中使用,所以只需删除代码“int i = Integer.parseInt(array [1]);”。

我不认为for循环的以下代码是正确的。阻止它的唯一方法是索引超出数组的范围。

for(y = 0; y > 0; ++y)
{
 message.append(array[y]);
 message.append("\n");
}