我使用以下代码来获取字符串中的整数。但这将首次出现整数。只需打印14.我需要获得所有整数。任何建议。
Pattern intsOnly = Pattern.compile("\\d+");
Matcher makeMatch = intsOnly.matcher("hello14 hai22. I am here 4522");
makeMatch.find();
String inputInt = makeMatch.group();
答案 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
}