此代码为Integer.parseInt(data [2])行引发异常。

时间:2018-09-24 11:35:14

标签: java integer numberformatexception parseint

在我的playerList.txt中,行的结构如下:

Nathaniel, Clyne, 12, first

为什么不能接受Integer.parseInt

我有一个MemberPlayer类,它定义了一个MemberPlayer,应该具有名字,姓氏,年龄和团队(第一或第二)。

  

线程“主”中的异常java.lang.NumberFormatException:用于输入   字符串:“ 12”
  在java.base / java.lang.NumberFormatException.forInputString NumberFormatException.java:65)
  在java.base / java.lang.Integer.parseInt(Integer.java:638)
  在java.base / java.lang.Integer.parseInt(Integer.java:770)
  在FileHandler.getContent(FileHandler.java:53)
  在Main.main(Main.java:55)

   public static final String FINAL_PATH = "playerList.txt";

   public static ArrayList<MemberPlayer> getContent(String FINAL_PATH)
     {
        ArrayList<MemberPlayer> list = new ArrayList<MemberPlayer>();
        try
        {
              Scanner sc = new Scanner(new File(FINAL_PATH));
              while(sc.hasNextLine())
              {                                   
                    String data[] = sc.nextLine().split(",");
                    list.add(new MemberPlayer(data[0], data[1], 
                    Integer.parseInt(data[2]), data[3]));
              }

        }
        catch(FileNotFoundException e)
        {

        }
        return list;
   }

2 个答案:

答案 0 :(得分:2)

" 12"无法解析为有效的int,因为它具有前导空格,但是"12"可以:

Integer.parseInt(data[2].trim())

在访问它们之前,请确保所有data[0] ... data[3]都存在。该文件可能已损坏或填充不正确。

答案 1 :(得分:1)

尝试用“,”或“,\\ s”分割。