java - 如何获取字符串的数值(整数或浮点数)?
问题描述
大家好,我正在尝试获取字符串中的数值。到目前为止,这种方法对我来说很有效,可以获取整数。但现在我也希望能够获得包含小数的数字。
如果我想提取字符串包含的数字,我使用: getNumbers("delay: 5 days") output = 5
现在我想得到“this a sample, delay: 7.1 days”的数量 output = 7.1 备注:str 总是可以改变,但总是会有一个数字(整数或浮点数)
public String getNumbers(String str){
str = str.replaceAll("[^\\d]", " ");
str = str.trim();
str = str.replaceAll(" +", " ");
if (str.equals(""))
return "-1";
return str;
}
解决方案
您可以使用正则表达式从字符串中仅检索数字,试试这个:
String numbers = Double.valueOf(yourStrValue.replaceAll("[^\\d.]+|\\.(?!\\d)", "")).toString()
但要注意离散数字将通过这种方式合并。例如,如果你有34fdf^.98
这个过程产生34.98
推荐阅读
- alloy-ui - AlloYUI:带有 showNextYear 和 showPreviousYear 按钮的 aui 日期选择器?
- python - 使用 for 循环在字典中创建内部键
- ubuntu - 如何使用 Ubuntu 18.04 降级到以前版本的 Mono
- delphi - 如何在 Delphi 10.3 中启用源文件删除
- javascript - 无法将复杂对象数组正确转换为 CSV
- javascript - 用钩子反应上下文防止重新渲染
- angular - 如何实现变更检测以使给定的示例有效
- python - 将 pandas 列中的名称更改为以大写字母开头
- css - 如何创建不随背景图像跳转的关键帧平滑连续循环?
- mail-server - 如何解决 spamassassin DKIM 超时请求?