拆分字符串以从中提取双精度值

use*_*787 0 java string

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

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

ass*_*ias 5

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

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

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