我有一个字符串-0.06,0.00,-0.99
。我想将第一个数字解析为 float 。
我正在使用:
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
的情况下将字符串解析为 float 。
实际 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
}
}
最佳答案
Java
包含围绕primitive
类型的包装类。例如,有一个包装 float
原语的 Float
类。这些包装类具有 valueOf(String s)
函数,可以将这些 primitive
类型的 String
表示形式解析为它们实际的 primitive
形式。如果格式正确,调用 Float.valueOf(stringRepresentationOfAFloat)
将为您提供一个 float
变量。
请参阅下面的代码示例:
String floatCsv = "-0.06,0.00,-0.99";
String [] floatCsvSplit = floatCsv.split(",");
for(String floatStringValue : floatCsvSplit){
float floatVariable = Float.valueOf(floatStringValue);
System.out.println(floatVariable);
}
关于java - 处理 - 将字符串解析为 float NullPointerException 时抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33679871/