【发布时间】:2016-02-14 06:35:50
【问题描述】:
我有一个字符串-0.06,0.00,-0.99。我想将第一个数字解析为浮点数。
我正在使用:
String myString = "-0.06,0.00,-0.99";
float myFloat = float(split(myString, ",")[0]);
println(split(myString, ",")[0]); // prints -0.06
第二行抛出NullPointerException。
我也尝试了以下方法并得到了完全相同的错误。
float myFloat = Float.parseFloat(split(myString, ",")[0]);
如何在不获取NullPointerException 的情况下将字符串解析为浮点数。
实际 MVCE:
我正在使用处理来逐行从我的串行中获取输入。第一个输入是"-0.06,0.00,-0.99"。
buffer = port.readStringUntil('\n'); //take input from serial til line-break
float[] acceleration;
if (buffer != null) {
if (buffer.indexOf(",") != -1) {
buffer = trim(buffer);
acceleration[0] = float(buffer.split(",")[0]); // this throws the error
}
}
【问题讨论】:
-
这两行都为我打印-0.06。请发布包含您正在运行的代码的MCVE。
-
可能是这样的:
accelleration[0]抛出 NPE,因为accelleration没有初始化。 -
这样就解决了!非常感谢。我真是太愚蠢了。
标签: java parsing nullpointerexception floating-point processing