我尝试使用 Double.valueOf
方法将字符串 "10 000.00" 转换为双精度浮点数,但出现了输入格式错误:
java.lang.NumberFormatException: For input string: "10 000.00"
如何将其转换为double类型?
您可以使用:
Double.valueOf(input.replaceAll("[ ]",""));
public static void main(String[] args) {
System.out.print(Double.valueOf("10 000.00".replaceAll("[ ]","")));
}
输出:
10000.0
for(char c : test.toCharArray()) {System.out.print((int) c+",");}
的输出吗? - Arnaud Denoyelle不换行空格
(在 HTML 中是 ,ASCII 160)。这就是为什么替换没有被执行。现在,让我们找到如何用空白字符来替换这个字符。 - Arnaud Denoyellejava.lang.NumberFormatException For input string: "10 000.00"
您的输入字符串"10 000.00"中有空格。
请使用以下代码从您的 String
中删除空格:
Double.valueOf("10 000.00".replaceAll("[^0-9\\.]", "")) // also Works with Special space like \u00A0
String number = input.replaceAll("[^0-9\\.]", "");
System.out.println(Double.valueOf(number));
10
和000
之间的空格。可以尝试添加replaceAll
:Double.valueOf(str.replaceAll("[ ]+",""));
Double.parse(String); //
Double类的静态方法将接受一个字符串并返回一个双精度浮点数值。 希望它有帮助。