在Java中从字符串中提取数字

3

我有一个包含数字的字符串,我想要提取其中的数字。例如,如果我的字符串是“bla bla 45 bla bla”,我想要得到数字45。我搜索了一下,发现这段代码可以实现这个功能

Matcher matcher = Pattern.compile("\\d+").matcher("bla bla 45 bla bla");
if(matcher.matches())
    String result = matcher.group();

但是它不起作用:(
可能的问题是"\d+"正则表达式被转换成了"^\d+$",因此匹配器无法匹配文本中的数字。
有什么想法吗。

2个回答

11

这里是如何使用 matcher.find() 的示例

    Matcher matcher = Pattern.compile("\\d+").matcher("bla bla 45 bla 22 bla");
    while(matcher.find()) {
        System.out.println(matcher.group());
    }
这将输出
45
22

5
你应该使用matcher.find()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接