读取文件输入时出现 java.lang.NumberFormatException

标签 java file exception

File folderPathFile = new File("C:\\Users\\ali\\Desktop\\folderPath.txt");


    BufferedReader reader = new BufferedReader(new FileReader(folderPathFile));
    String line = reader.readLine();
    while(line != null){
        foldersPath.add(line);
        line = reader.readLine();
    }
    reader.close();


    String lineDup = line.toString();
        String[] LineSplits = lineDup.split(",");


        String[] array = LineSplits[1].trim().split(" ");
        for(int i =0; i<array.length;i++) {
            int fr = Integer.parseInt(array[i]);
            System.out.println(fr);//its printing
        }

        int fr1 = Integer.parseInt(LineSplits[0]);
        System.out.println(fr1);
}                                            

我的问题是,当我运行此代码时,我有 java.lang.Exception: java.lang.NumberFormatException: For input string: "900"

我给出的输入,即我的文件数据是 900, 200 300 400 500 600

为什么只有 900 我才会遇到这样的错误?

最佳答案

检查 lineSplit[0] 长度,如果为 4,则存在不可见字符,即 ZERO WIDTH NO-BREAK SPACE 。它很难被检测到,因为它是不可见的,并且修剪不会删除该字符。如果是这样,您需要删除该角色

编辑: 正如你所说,它的长度是 4。尝试这个 LineSplits[0].replace(u'\ufeff', '') 或者你可以自己写这个数字,而不是从某个地方复制它

您可以在 SO Question 上查看有关此角色的长篇讨论。虽然它与 HTML 有关,但这个字符的出现方式和所有内容都是有意义的

关于读取文件输入时出现 java.lang.NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31480915/

相关文章:

java - org.springframework.data.domain.PageImpl 无法反序列化,当我想使用 findAll(Pageable pageable) 和注释 @Cacheable(spring cache) 时?

java - 如何根据条件取消选择二维数组中的一行并查找其他行的总和

java - 如何在测试基于 CamelSpringTestSupport 的测试期间设置属性值

java - 是否可以上传 file.xlsx,处理它而不将其保存在服务器中?我正在使用 jaxrs

c++ - 使用C++和Visual Studio调试是否有办法在超出数组或内存分配的界限时始终抛出异常?

拉拉维尔 : The payload is invalid

java - Properties.contains() 的意外输出

iphone - iOS 5 : Is it possible to write a struct to a plist file?

java - 正则表达式将字符串与星号匹配

python - Spyne 故障 - HTTP 返回代码