Java 如何获取字符串中存在的所有整数?
我使用下面的代码来获取字符串中的整数。但这将给出第一个整数。只需打印14页。我需要得到所有的整数。任何建议Java 如何获取字符串中存在的所有整数?,java,design-patterns,Java,Design Patterns,我使用下面的代码来获取字符串中的整数。但这将给出第一个整数。只需打印14页。我需要得到所有的整数。任何建议 Pattern intsOnly = Pattern.compile("\\d+"); Matcher makeMatch = intsOnly.matcher("hello14 hai22. I am here 4522"); makeMatch.find(); String inputInt = makeMatch
Pattern intsOnly = Pattern.compile("\\d+");
Matcher makeMatch = intsOnly.matcher("hello14 hai22. I am here 4522");
makeMatch.find();
String inputInt = makeMatch.group();
提示:不需要循环获取所有数字吗?提示:不需要循环获取所有数字吗?
List allIntegers=new ArrayList();
List<Integer> allIntegers = new ArrayList<Integer>();
while(matcher.find()){
allIntegers.add(Integer.valueOf(matcher.group));
}
while(matcher.find()){
add(Integer.valueOf(matcher.group));
}
列出allIntegers=new ArrayList();
while(matcher.find()){
add(Integer.valueOf(matcher.group));
}
请参见:
要在主题字符串中查找正则表达式的第一个匹配项,请调用myMatcher.find()。要查找下一个匹配项,请再次调用myMatcher.find()。当myMatcher.find()返回false,表示没有进一步的匹配时,对myMatcher.find()的下一次调用将再次找到第一个匹配。当find()失败时,匹配器将自动重置为字符串的开头
即,您可以使用以下代码:
while (makeMatch.find()) {
String inputInt = makeMatch.group();
// do something with inputInt
}
见:
要在主题字符串中查找正则表达式的第一个匹配项,请调用myMatcher.find()。要查找下一个匹配项,请再次调用myMatcher.find()。当myMatcher.find()返回false,表示没有进一步的匹配时,对myMatcher.find()的下一次调用将再次找到第一个匹配。当find()失败时,匹配器将自动重置为字符串的开头
即,您可以使用以下代码:
while (makeMatch.find()) {
String inputInt = makeMatch.group();
// do something with inputInt
}
这不会打印第一个匹配项。请改用
do..while
。它会打印第一个匹配项。如果没有匹配项,则使用do..while
将引发异常。这不会打印第一个匹配项。改为使用do..while
将引发异常。如果不存在匹配项,则使用do…while
将引发异常。@mre您是对的。我总是忘记家庭作业的问题。@mre你说得对。我总是忘记家庭作业问题。或者看“官方”Java教程。或者看“官方”Java教程。