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