所以我正在读取一个CSV文件,如果一切都是字符串的话就可以正常工作。但是,当我尝试解析文件中的整数时,它不再有效。线程“main”中的异常java.lang.NumberFormatException:对于输入字符串:“1”
Scanner scanner = new Scanner(new File("top250.csv"));
scanner.useDelimiter(",");
while(scanner.hasNextLine()){
String line = scanner.nextLine();
System.out.println(line);
String[] parts = line.split(",");
String rank = parts[0].trim();
System.out.println(rank);
int real_rank = Integer.parseInt(rank);
}
输出:
1, The Shawshank Redemption ,9.2,1994
1
Exception in thread "main" java.lang.NumberFormatException: For input string: "1"
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 movieranker.MovieRanker.createData(MovieRanker.java:45)
at movieranker.MovieRanker.main(MovieRanker.java:25)
没有您的代码错误,只是scanner.useDelimiter(“,”);很奇怪。使用这将给每一行一个部分。所以我很确定代码和输出不匹配。请重新检查并编辑! –
“1”有多少个字符?也许有一些额外的没有可打印的字符,你不能粘贴不被trim()捕获。 –
只是为了检查,你可以发送你的完整代码吗? –