![](/img/trans.png)
[英]java - Exception in thread “main” java.lang.NumberFormatException: For input string: “” at
[英]Exception in thread “main” java.lang.NumberFormatException: For input string: “0.353”
我正在将字符串解析为 Java 中的浮点数。
但它抛出了这个异常。 我对这个问题很困惑,因为“0.353”显然是一个应该由 parseFloat() 方法解析的数字。
我错过了什么? 感谢你的帮助!
String FitMappath = PathofFile.path+"FitnessMap.txt";
FileInputStream in = new FileInputStream(FitMappath);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
//Read File Line By Line
String line;
while ((line = br.readLine()) != null) {
String[] parts = line.split("\\s+"); //Split into three elements
float fitness = Float.parseFloat(parts[2]);// String to float
}
Exception in thread "main" java.lang.NumberFormatException: For input string: "0.353"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:110)
at java.base/java.lang.Float.parseFloat(Float.java:549)
at DelFitnessCalculation.<init>(DelFitnessCalculation.java:66)
at Main.main(Main.java:49)
我的输入文件的前三行:
Q0085 ATP6 0.353
YDR034C-A YDR034C-A 0.359
tORF13 tORF13 0.360
当我做System.out.println(Float.parseFloat("0.353"));
,它将0.353
打印为浮点数,因此它一定是您的拆分有问题,或者某处可能存在隐藏字符。
您能否尝试提供整个代码片段以希望我们能够更好地回答?
放置这个:
System.out.println("parts[2]=" + parts[2]);
在您共享的两行代码之间。 我想你会找到你正在寻找的东西,这就是你的错误的原因。
感谢您的回答。 最终,事实证明是 UTF-16 引起了问题。 我的输入文件原本是一个excel文件,然后我保存为UTF-16 txt,导致了这个问题。 我尝试将输入文件保存为制表符分隔的文本文件,它按预期工作。
这是 NumberFormatException 的一个奇怪原因。 希望它可以帮助其他人遇到同样的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.