如何转换此字符串:
String str = "***123.45***";
到这双:
double d = 123.45;
当我使用valueOf
时double d = Double.valueOf("***123.04***");
或parseDouble
double d = Double.parseDouble("***123.45***");
它将抛出java.lang.NumberFormatException: For input string: ""123.04""
,因为该字符串不包含数字。我需要摆脱星号。
答案 0 :(得分:1)
删除之前的星号
str = str.replace("*", "");
答案 1 :(得分:1)
尝试替换api以替换所有" *"在您的输入中如下:
double d = Double.valueOf("***123.04***".replace("*", ""));
System.out.println(d);
答案 2 :(得分:0)
尝试使用正则表达式匹配数字:
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)));
}