【发布时间】: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