【问题标题】:Read non-printable character from a file从文件中读取不可打印的字符
【发布时间】:2017-10-29 08:04:10
【问题描述】:

我正在尝试从文件中将字符作为整数读取,但收到 NumberFormatException 异常:

Java.lang.NumberFormatException: For input string: "4
" java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Integer.parseInt(Integer.java:458) at java.lang.Integer.valueOf(Integer.java:554) at Main.main(Main.java:9)

我很确定它来自文件,因为只有当我将文本复制到文件时才能复制它,当手动输入时,它会正确解析。 我的问题是:如何避免此异常并将“4”解析为变量?我解析它的行是:int m = Integer.valueOf(inputFile.readLine());

【问题讨论】:

  • 这个文件中的 4 是在它自己的行上吗?如果是这样,则该不可打印字符可能是 Windows 系统中使用的回车符。
  • 只有 4,没有引号,控制台将数字放在它们之间。是的,它可能是回车,但我怎样才能删除它?因为我无法引用未打印的实际字符。
  • 尝试使用int m = Integer.valueOf(inputFile.readLine().replaceAll("[^\\d]+", ""));
  • 谢谢,伙计!你可以发表你的评论作为答案吗?我愿意接受。

标签: java parsing exception integer readfile


【解决方案1】:

您的输入中似乎有一些特殊字符,为避免此问题,您可以使用:

int m = Integer.valueOf(inputFile.readLine().replaceAll("[^\\d]+", ""));

这意味着用空替换任何非数字

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多