首页 > 解决方案 > 如何在中断之前检查数组中的每个元素

问题描述

if((Integer.parseInt(indexesString[i]) > 0 && Integer.parseInt(indexesString[i]) <= 12)) {
    break outerloop;
} 

如何IndexesString在中断前检查所有元素是否在 1 到 12 之间?现在它只检查第一个元素是否在 1 到 12 之间,然后中断而不检查其余元素是否有效。

"1 13" should not break
"1 12" should break

编辑:输入是一个字符串。例如“1”或“1 2 12”,每个数字都分成单独的字符串。

标签: java

解决方案


尝试使用流 api 中的函数。代码如下:

有关allMatch的进一步阅读

import java.util.List;
import java.util.ArrayList;

public class Between {
  public static void main(String[] args) {
    List<String> indexesString = new ArrayList<String>() {{
      add("1");
      add("9");
      add("4");
    }};

    if (indexesString.stream().allMatch(s -> 0 < Integer.parseInt(s) && Integer.parseInt(s) <= 12)) {
      System.out.println("break!!!");
    } else {
      System.out.println("something happened");
    }
  }
}

推荐阅读