是否可以仅从字符串中提取数字

时间:2015-10-28 08:50:32

标签: java

我正在使用Jsoup在网站上进行数据报废,我从服务器获得的响应位于

之下
Prev. Close: 65.113

我的问题是是否可以仅提取 65.113 ??

我不能使用替换,因为文本可能会改变

4 个答案:

答案 0 :(得分:4)

假设您有确切的格式

String input = "Prev. Close: 65.113";
String result = input.split(":")[1].trim();

会给你结果。

答案 1 :(得分:3)

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

Pattern p = Pattern.compile("-?\\d+(\.\d+)?");
Matcher m = p.matcher("Prev. Close: 65.113");
while (m.find()) {
    System.out.println(m.group());
}

答案 2 :(得分:0)

你可以尝试这个正则表达式:适用于所有负面情况

public static void main(String[] args) {
    String s = "Prev. Close: 65.113";
    System.out.println(s.replaceAll(".*?(\\d+(\\.\\d+)?).*", "$1"));
}

O / P:

65.113

答案 3 :(得分:0)

您可以使用正则表达式:

String str = "Prev. Close: 65.113";
Pattern p = Pattern.compile("-?\\d+(?:\\.\\d+)");
Matcher m = p.matcher(str);
if (m.find()) {
    double val = Double.parseDouble(m.group(0));
}