0

我怎样才能转换String s="3.78 hi bye"double c=3.78

同样的问题String s="hi 3.78 hi bye"(忽略之前的文字,只取 3.78)

4

2 回答 2

5

您可以使用正则表达式来删除所有不是数字或 a 的字符.

String s = "hi 3.78 hi bye";
String numberOnly = s.replaceAll("[^0-9\\.]+", "");
double d = Double.parseDouble(numberOnly); //d == 3.78d

如果原始字符串的格式不正确,您应该添加一些异常处理。

于 2012-10-07T10:00:42.510 回答
1

你可以尝试使用正则表达式

Pattern doubleValue = Pattern.compile("\\d+\\.\\d+");
Matcher m = doubleValue.match(yourString);
if (m.find()) {
   return Double.parseDouble(m.group(0));
}
return null;
于 2012-10-07T10:00:27.660 回答