拆分一个字符串以从中提取双值

时间:2012-10-07 09:56:17

标签: java string

如何将String s="3.78 hi bye"转换为double c=3.78

String s="hi 3.78 hi bye"同样的问题(在忽略之前的文本时只需要3.78)

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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

Pattern doubleValue = Pattern.compile("\\d+\\.\\d+");
Matcher m = doubleValue.match(yourString);
if (m.find()) {
   return Double.parseDouble(m.group(0));
}
return null;