Этот код вызывает исключение для строки Integer.parseInt (data [2]) - PullRequest
0 голосов
/ 24 сентября 2018

В моем playerList.txt есть строки, построенные так:

Nathaniel, Clyne, 12, first

Почему он не может принять Integer.parseInt?

У меня есть класс MemberPlayer, который определяетMemberPlayer должно иметь имя, фамилию, возраст и команду (первое или второе).

Исключение в потоке "main" 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 голосов
/ 24 сентября 2018

Попробуйте разделить на "," или ", \\ s".

0 голосов
/ 24 сентября 2018

" 12" не может быть преобразован в действительный int, поскольку он имеет начальный пробел, но "12" может:

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

Убедитесь, что все из data[0] ...data[3] существует до доступа к ним.Файл может быть поврежден или заполнен неточно.

...