我有一个User对象,该对象具有布尔值workOut1,workOut2,workOut3,workOut4 我想创建一个方法以返回计数为真的数量。 例子
Workout1 = false
Workout2 = true
Workout3 = false
Workout4 = false
将返回1。 任何帮助都将得到
答案 0 :(得分:2)
即使仅对4个变量,将它们放入数组或列表中也是有意义的。
如果还有更多,则必须执行该操作,然后对数组进行迭代和求和,或者使用列表过滤。
现在,对于4个变量,您可以使用ternary operator:
int counter = (Workout1 ? 1 : 0) + (Workout2 ? 1 : 0) + (Workout3 ? 1 : 0) + (Workout4 ? 1 : 0);
虽然不优雅。
答案 1 :(得分:1)
您可以执行以下操作:
long numberOfTrues = Stream.of(workout1, workout2, workout3, workout4)
.filter(w->w)
.count();
答案 2 :(得分:0)
将所有内容放入数组中,然后创建一个新方法来遍历数组。该方法将检查数组中的每个布尔值,并检查其是否为true。如果为true,则int x将增加1。一旦循环完成,它将返回x的值。希望对您有帮助!
public static void main(String[] args) {
Boolean[] test = new Boolean[4];
boolean Workout1 = false;
boolean Workout2 = true;
boolean Workout3 = false;
boolean Workout4 = false;
test[0] = Workout1;
test[1] = Workout2;
test[2] = Workout3;
test[3] = Workout4;
System.out.println(check(test));
}
public static int check(Boolean[] array) {
int x = 0;
for (int i = 0; i < array.length; i++) {
if (array[i].equals(true)) {
x++;
}
}
return x;
}