将混合字符串转换为双精度字符串



如何转换此字符串:

String str = "***123.45***";

到这个替身:

double d = 123.45; 

当我使用的值时

double d = Double.valueOf("***123.04***");

或parseDouble

double d = Double.parseDouble("***123.45***");

它将抛出CCD_ 1,因为该字符串不仅仅包含数字。我需要去掉星号。

尝试替换api以替换输入中的所有"*",如下所示:

double d = Double.valueOf("***123.04***".replace("*", ""));
System.out.println(d);

删除之前的星号

str = str.replace("*", "");

尝试使用regex匹配数字:

String s = "eXamPLestring>1.4365345>>ReSTOfString";
Pattern p = Pattern.compile("\D*([0-9]*\.*[0-9]*)\D*");
Matcher m = p.matcher(s);
if (m.find()) {
    System.out.println(Double.parseDouble(m.group(1)));
}

最新更新