使用Java读取文件时的数字格式异常

时间:2015-08-17 13:10:13

标签: java parsing

嘿所有,所以我正在尝试从文本文件中读取值,以便我可以将其用于其他内容 - 但是,当我尝试运行时,我不断收到'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可能正在读取不可见的字符,因为我已经通过打印第一个索引的长度来测试它,并且字符数超过应有的数量。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

解析器不会忽略引号,首先将其删除。

更改

line = in.nextLine().split(";");

line = in.nextLine().replaceAll("\"", "").split(";");

答案 1 :(得分:0)

现在line[0]的值为 "276725

试试这个。

mid = Integer.parseInt(line[0].substring(1).trim());

它将删除前导 " ,其余值将为数字。