如何获取字符串中的所有整数?

时间:2011-08-23 12:40:50

标签: java design-patterns

我使用以下代码来获取字符串中的整数。但这将首次出现整数。只需打印14.我需要获得所有整数。任何建议。

Pattern intsOnly = Pattern.compile("\\d+");
            Matcher makeMatch = intsOnly.matcher("hello14 hai22. I am here 4522");
            makeMatch.find();
            String inputInt = makeMatch.group();

4 个答案:

答案 0 :(得分:4)

提示:你不需要循环来获取所有数字吗?

答案 1 :(得分:2)

Pattern intsOnly = Pattern.compile("\\d+");
Matcher makeMatch = intsOnly.matcher("hello14 hai22. I am here 4522");
String inputInt = null;
while(makeMatch.find()) {
    inputInt = makeMatch.group();
    System.out.println(inputInt);
}

答案 2 :(得分:1)

List<Integer> allIntegers = new ArrayList<Integer>();
while(matcher.find()){
    allIntegers.add(Integer.valueOf(matcher.group));
}

答案 3 :(得分:1)

请参阅this nice tutorial on Regular Expressions in Java

  

要在主题字符串中查找正则表达式的第一个匹配项,请调用myMatcher.find()。要查找下一个匹配项,请再次调用myMatcher.find()。当myMatcher.find()返回false时,表示没有进一步的匹配,下一次调用myMatcher.find()将再次找到第一个匹配项。当find()失败时,匹配器会自动重置为字符串的开头。

即。您可以使用以下代码:

while (makeMatch.find()) {
  String inputInt = makeMatch.group();
  // do something with inputInt
}