嘿所有,所以我正在尝试从文本文件中读取值,以便我可以将其用于其他内容 - 但是,当我尝试运行时,我不断收到'lava.lang.NumberFormatException'。这是我的代码片段,问题似乎在哪里。
"User-ID;""ISBN"";""Book-Rating"""
"276725;""034545104X"";""0"""
"276726;""0155061224"";""5"""
"276727;""0446520802"";""0"""
"276729;""052165615X"";""3"""
"276729;""0521795028"";""6"""
"276733;""2080674722"";""0"""
"276736;""3257224281"";""8"""
"276737;""0600570967"";""6"""
"276744;""038550120X"";""7"""
这是我要读的数据:
"276725 length: 7
usage: java MemReader sourceFile destFile
java.lang.NumberFormatException: For input string: ""276725"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at memreader.MemReader.readData(MemReader.java:76)
at memreader.MemReader.main(MemReader.java:265)
当我运行它时,我收到以下错误:
{{1}}
似乎java可能正在读取不可见的字符,因为我已经通过打印第一个索引的长度来测试它,并且字符数超过应有的数量。任何帮助将不胜感激。
答案 0 :(得分:2)
解析器不会忽略引号,首先将其删除。
更改
line = in.nextLine().split(";");
到
line = in.nextLine().replaceAll("\"", "").split(";");
答案 1 :(得分:0)
现在line[0]
的值为 "276725
。
试试这个。
mid = Integer.parseInt(line[0].substring(1).trim());
它将删除前导 "
,其余值将为数字。