如何转换此字符串:
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)));
}