我有一个布尔数组设置,我需要找出它存储了多少真实和谬误...
boolean[][] SignalMap = new boolean[Size][Size];
我将如何做到这一点?
for(int i = 0; i < Size; i++)
{
int counter = 0;
if(SignalMap = true)
counter++;
{
System.out.println("true: " + counter)
System.out.println("flase: " + (Size - counter));
答案 0 :(得分:3)
想要查看单行解决方案吗?
int trueCount = Arrays.deepToString(SignalMap).replaceAll("[^t]", "").length();
错误的计数当然是赞美:
int falseCount = Size * Size - trueCount;
答案 1 :(得分:1)
首先,您在counter
的每次迭代中初始化for loop
等于0,每次都会重置它。那不是你想要的;在顶部执行一次(之前 for loop
)。
其次,你需要有一个嵌套的 for loop
来遍历每一行中的每一列,然后计算那样的“真实”数量。
第三,您的比较声明if(SignalMap = true)
不正确,因为:
SignalMap
必须是SignalMap[rowPosition][columnPosition]
SignalMap = true
将其设置为true
,这是您无法做到的。您想比较它以查看 true
,因此您应该写SignalMap == true
。最后,存储的错误booleans
的数量将是从行大小中减去true booleans
的数量乘以列大小。这是因为列数为rowSize
,每列中都有colSize
booleans
。因此,将它们相乘以得到2D数组中布尔值的总数。
<强> _ __ _ __ _ __ _ __ _ 的__ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ < / EM> __ _ __ _ __ _ __ _ __ _ ___ < /强>
boolean[][] SignalMap = new boolean[rowSize][colSize];
int counter = 0; // initialize before the for loops
for(int r = 0; r < rowSize; r++) { // loop for rows
for (int c = 0; c < colSize; c++) { // nested loop for columns
if (SignalMap[r][c]) // if array boolean at r and c position is true...
counter++; // add one to the counter
}
}
System.out.println("true: " + counter)
System.out.println("false: " + (rowSize * colSize - counter));
// total number of booleans in array is rowSize * colSize
// and total # of false booleans is total # of booleans - # of true booleans
答案 2 :(得分:0)
if(SignalMap[i] == true) // this is for a regular array
这可能是您想要的2D阵列
for(int i = 0; i < Size; i++) {
for(int j = 0; j < Size; j++) {
if(SignalMap[i][j]) // will result to true if SignalMap[i][j] is in fact true
counter++;
}
}
答案 3 :(得分:0)
由于这是Java,因此您的变量应该是小写的。
boolean[][] signalMap = new boolean[size][size];
对于数组的每个维度,您需要一个for循环。
这是编写double for循环的一种方法。计数器需要在for循环之外初始化。
int counter = 0;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
if (signalMap[i][j]) {
counter++;
}
}
}
System.out.println("true: " + counter);
System.out.println("false: " + (size * size - counter));