Integer.Parse 在 excel 获取的字符串上抛出

在我的程序中,我获取 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 的相同问题 Stacktrace:


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)


慕桂英4014372
浏览 98回答 1
1回答

蝴蝶刀刀

您的 CSV 文件以UTF-8 编码的字节顺序标记开头。例如,如果您在十六进制编辑器中打开文件,您可以看到它:虽然额外的字节 EF BB BF 不可见,但它们是令人不安的Integer.parseInt。有关一些解决方案,请参阅字节顺序标记在 Java 中破坏文件读取。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java