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/