Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取字符串中存在的所有整数?_Java_Design Patterns - Fatal编程技术网

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

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

我使用下面的代码来获取字符串中的整数。但这将给出第一个整数。只需打印14页。我需要得到所有的整数。任何建议

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教程。