此代码为 Integer.parseInt(data[2]) 行抛出异常

This code throws an exception for the line Integer.parseInt(data[2])

在我的 playerList.txt 中,我有这样构造的行:

Nathaniel, Clyne, 12, first

为什么不能接受Integer.parseInt

我有一个 class MemberPlayer 定义 MemberPlayer 应该有名字、姓氏、年龄和团队(第一或第二)。

Exception in thread "main" java.lang.NumberFormatException: For input string: " 12"
at java.base/java.lang.NumberFormatException.forInputString NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:638)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at FileHandler.getContent(FileHandler.java:53)
at 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;
   }

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

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

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

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