目前,我正在准备一份注册表。我有一个检查数组中每个字段的方法,以查看其是否为空,并将结果另存为布尔值。
基本上,用户必须输入他的姓名,电子邮件等才能注册。我有一个检查所有字段是否为空的函数,然后将结果存储在布尔数组中。
我如何总结布尔数组的结果? 我该怎么做?
boolean resultOverAll = false;
boolean[] validationResultsPerField = new boolean[fields.length];
for (int i = 0; i < validationResultsPerField.length; i++){
if (validationResultsPerField[i] && validationResultsPerField[i+1]){
resultOverAll = true;
}
}
很明显,我的逻辑不正确。
答案 0 :(得分:0)
基本上,您要检查布尔数组是否全部为真。
public static boolean areAllTrue(boolean[] array) {
for(boolean b : array) if(!b) return false;
return true;
}
答案 1 :(得分:0)
这是解决方案。
boolean resultOverAll = true; // lets assume all fields are valid
for (int i = 0; i < validationResultsPerField.length; i++){
if (!validationResultsPerField[i]){ // if you find any false then break
resultOverAll = false;
break;
}
}
答案 2 :(得分:0)
您必须检查所有数组元素是否为真。您可以通过Java 8 Streams使用函数式编程来完成此任务:
Boolean[] validationResultsPerField = new Boolean[fields.length];
boolean resultOverAll = Stream.of(validationResultsPerField).allMatch(validationResult -> validationResult);