java - 处理 - 将字符串解析为 float NullPointerException 时抛出

标签 java parsing nullpointerexception floating-point processing

我有一个字符串-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/

相关文章:

parsing - Parse Cloud 代码出现错误 "Unable to complete HTTP request"(代码 141)

java - 如何在 Windows 10 中设置 Javacc

android - 使用 Jsoup 解析文本文件

java - JTextField.setText() 抛出 NullPointerException

java - SWT/JFace 对话框中“确定”按钮选择监听器中出现错误

java - 将 PgArray 或 java.sql.Array 转换为 Scala 集合

java - 如何使用Spring框架将同一个类的2个实例注入(inject)另外2个不同的类?

java - TextView setText View 中的空指针异常被夸大

java - 从文件中读取内容并发送电子邮件

java - 如何更改文本字段 javafx 中的字体颜色