如何使用 Double.parseDouble 格式化基本上由 Java 中以空格分隔的数字组成的

在此示例中,我正在等待 double 55000,但收到 NumberFormatException 类型错误


 // After runing, this display a NumberFormatException

    System.err.println(Double.valueOf("55 000"));


    // After runing, this display a NumberFormatException

    System.err.println(Double.parseDouble("55 000"));


蝴蝶不菲
浏览 203回答 2
2回答

狐的传说

您需要在使用之前删除空格Double.parseDouble():String input = "55 000";double number = Double.parseDouble(input.replace(" ", ""));System.out.println(number);或者使用DecimalFormat自定义分组分隔符来解析字符串:DecimalFormat decimalFormat = new DecimalFormat();DecimalFormatSymbols symbols = new DecimalFormatSymbols();symbols.setGroupingSeparator(' ');decimalFormat.setDecimalFormatSymbols(symbols);double number = decimalFormat.parse(input).doubleValue();System.out.println(number);

慕莱坞森

如果您想忽略空格,只需遍历字符串,如果字符是空格,请不要将其放入新字符串中,然后将其转换为双精度数。String dbl = "55 000";String newDbl = "";for (int i = 0; i < dbl.length(); i++){&nbsp; &nbsp; if (dbl.charAt(i) != ' '){&nbsp; &nbsp; &nbsp; &nbsp; newDbl+=dbl.charAt(i)&nbsp; &nbsp; }}double dub = Double.valueOf(newDbl);这会给55_000,这是我对你正在尝试做的事情的解释。如果你想要 55.000 并且可以保证字符串会有一个空格String dbl = "55 000";int index = dbl.indexOf(" ");StringBuilder build = new StringBuilder(dbl);build.deleteCharAt(index);build.insert(index,".");double dub = Double.valueOf(build.toString());dub将会55.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java