0

我目前有以下代码:

    Pattern intsOnly = Pattern.compile("\\d+");
    Matcher matcher = intsOnly.matcher(o1.getIngredients());
    matcher.find();
    String inputInt = matcher.group();

当前发生的是使用正则表达式,它找到字符串中的第一个整数并将其分隔,以便我可以对其执行操作。我用来在其中查找整数的字符串有很多整数,我希望它们都是分开的。如何调整此代码,以便它还记录字符串中的其他整数,而不仅仅是第一个。

提前致谢!

4

1 回答 1

2

在您发布的代码中:

matcher.find();
String inputInt = matcher.group();

您通过一次调用来匹配整个字符串以查找。然后将第一个数字匹配分配给您的 String inputInt。因此,例如,如果您有以下字符串数据,您的回报将仅为1.

1 egg, 2 bacon rashers, 3 potatoes

您应该使用while循环来遍历您的匹配项。

Pattern intsOnly = Pattern.compile("\\d+");
Matcher matcher = intsOnly.matcher(o1.getIngredients());
while (matcher.find()) {
  System.out.println(matcher.group());
}
于 2013-09-22T23:55:24.843 回答