Integer.Parse создает исключение NumberFormatException для строки извлечения Excel - PullRequest
0 голосов
/ 11 февраля 2019

в моей программе я выбираю каждую строку таблицы Excel.Когда я разделяю строку, чтобы проанализировать каждый String массива в Integer, исключение, упомянутое в заголовке, выдается.Таблица заполняется следующим образом:

0;1;100;4;1000;8;8
...

Таблица сохраняется как .csv, поэтому я делю на ;

Идея: Значения файла содержат ложные символы:
Я уже проверил наличие символов ширины 0 ...

Фрагмент кода:

try {
        bufferedReader = new BufferedReader(new FileReader(fileName));

        while ((line = bufferedReader.readLine()) != null) {
            if(flag == 0){
                tableSize = line.split(";").length;
                System.out.println("TableSize is: "+tableSize);
                flag = 1;
                table1 = new int[tableSize][tableSize];
            }
            String [] tempStrings = line.split(";");
            int [] tempInts = new int[tableSize];

            for(int i=0; i<tableSize;i++){
                tempInts[i] = Integer.parseInt(tempStrings[i]);
                System.out.println(tempInts[i]);
            }

            table1[row] = tempInts;
            row++;
        }

Любая помощь очень ценится!
Редактировать: После создания нового CSV-файла та же проблема Стекировка NumberFormatException :

java.lang.NumberFormatException: For input string: "0"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at excercise.Main.fillTableByCsv(Main.java:53)
at excercise.Main.main(Main.java:22)

1 Ответ

0 голосов
/ 11 февраля 2019

Ваш CSV-файл начинается с метки порядка байтов , закодированной в UTF-8.Это можно увидеть, например, если открыть файл в шестнадцатеричном редакторе:

Хотя лишние байты EF BB BF не видны, они расстраивают Integer.parseInt.

См. Метка порядка следования байтов портит чтение файлов в Java для некоторых решений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...