如何在中断之前检查数组中的每个元素

时间:2018-10-21 14:43:25

标签: java

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”,它们分别为每个数字分割成字符串。

2 个答案:

答案 0 :(得分:4)

尝试使用流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");
    }
  }
}

答案 1 :(得分:2)

如果Mark的答案看起来太复杂,您可以尝试此操作。为了检查IndexesString 中的所有元素是否都在一定范围内,我们必须迭代IndexesString。因此,将您的if语句放入另一个for循环中。

boolean allWithinRenge = true;

for (String s : indexesString) { //iterate through indexesString
    if (!(Integer.parseInt(s) > 0 && Integer.parseInt(s) <= 12)) { //check the range of each element
        allWithinRenge = false;
        break; //break this loop, because an element is not within the range
    }
}

if (allWithinRenge) {
    // all numbers are within 1 and 12
} else {
    break yourLoop;
}