Java 如何仅获取字符串中的数字?

Java 如何仅获取字符串中的数字?,java,Java,如果您提示用户输入价格,而他们输入了25.50美元,我将如何取出数字并将其存储为双精度,以便在方程式中使用它们 我试过了 System.out.println("What is the price of the product(e.g. 35.21)?"); price = scanner.nextLine(); price_2 = price.replaceAll("[^0-9]", ""); price_3 = Double.parseDouble(price

如果您提示用户输入价格,而他们输入了25.50美元,我将如何取出数字并将其存储为双精度,以便在方程式中使用它们

我试过了

    System.out.println("What is the price of the product(e.g. 35.21)?");
    price = scanner.nextLine();
    price_2 = price.replaceAll("[^0-9]", "");
    price_3 = Double.parseDouble(price_2);
    System.out.println(price_3);

但它不保留小数点。

您可以使用
regex
从字符串中去掉所有非数字字符,同时保留小数点

然后,只需将字符串解析为一个
double

String str = "$25.50";

double dbl = Double.parseDouble(str.replaceAll("[^0-9,.]",""));
System.out.println(dbl);

在代码中,您也删除了小数点。只需将
,.
添加到您的正则表达式中。

输出为双精度值是什么意思?您能给我们提供输入和输出示例吗?在询问时,您需要付出更多的努力,添加一些示例数据和您迄今为止编写的一些代码,并且总体上更好地解释您想要实现的目标细化字符串。它是如何格式化的?它能被解析吗?这是一种随机格式吗?请阅读并相应地增强您的问题。