Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拆分字符串以从中提取双倍值_Java_String - Fatal编程技术网

Java 拆分字符串以从中提取双倍值

Java 拆分字符串以从中提取双倍值,java,string,Java,String,如何将字符串s=“3.78 hi bye”转换为双c=3.78 对于String s=“hi 3.78 hi bye”(只取3.78,忽略前面的文本)您可以尝试使用正则表达式 Pattern doubleValue = Pattern.compile("\\d+\\.\\d+"); Matcher m = doubleValue.match(yourString); if (m.find()) { return Double.parseDouble(m.group(0)); } retur

如何将
字符串s=“3.78 hi bye”
转换为
双c=3.78


对于
String s=“hi 3.78 hi bye”
(只取3.78,忽略前面的文本)

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

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

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

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

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

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

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

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

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

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

您的意思是3.78或任何十进制数字吗?您在Google上没有找到什么??我的意思是,除了在互联网上随机邀请陌生人帮你做这件事之外。对javadoc的简单研究应该可以解决这个问题!你的意思是3.78或任何小数点吗?你在谷歌上没有找到什么??我的意思是,除了在互联网上随机邀请陌生人帮你做这件事之外。对javadoc的简单研究应该可以解决这个问题!模式必须是:
[+-]?\d*\.?\d+([eE][+-]?\d+)
模式必须是:
[+-]?\d*\.?\d+([eE][+-]?\d+)