将String转换为double get错误

时间:2013-01-22 06:29:22

标签: string double converter

我通过此代码

捕获java中外部.exe文件的输出值
Process p = Runtime.getRuntime().exec("filepath\\myexefile.exe 5.53 46.46"); // 5.53 and 46.46 are two input orguments of exe file
BufferedReader stdInput = new BufferedReader(new 
InputStreamReader(p.getInputStream()));

String s;
while ((s = stdInput.readLine()) != null) {
    System.out.println(s);                         }
    Double d = Double.valueOf(s);
    System.out.println(d);
}

代码运行正常,它按预期显示输出53.4429。但是当我尝试将53.4429转换为double时,它会出现以下错误

Exception in thread "main" java.lang.NullPointerException
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1008)
    at java.lang.Double.valueOf(Double.java:504)

知道为什么字符串不会转换为double?提前谢谢

1 个答案:

答案 0 :(得分:0)

因为循环一直运行到s为空,然后然后你正在传递s - 现在是null,请记住 - {{1 }}

要解决此问题,在循环中解析Double#valueOf(String)

s
相关问题