【问题标题】:Looking for a way to change a boolean to a boolean array in Java寻找一种在Java中将布尔值更改为布尔数组的方法
【发布时间】:2015-02-03 23:31:36
【问题描述】:

我试图让这个方法返回一个布尔值数组。布尔值是真还是假,取决于给定的下限整数是高于还是等于(真)到 someNumbers[i] 中的值还是低于(假)。

例如,如果楼层值为 19,而 someNumbers 包含:1、785、17、56、78。布尔数组将为 false、true、false、true、true。

这是我的 Java 方法:

public boolean[] boolsRule(int floor, int[] someNumbers) {

    boolean[] results;
    for (int i = 0; i < someNumbers.length; i++) {
        results = (someNumbers[i] >= floor) ? true : false;
    }

    return results;
}

这是我收到的错误消息:

error: incompatible types results = (someNumbers[i] >= floor) ? true : false; ^ required: boolean[] found: boolean

我想知道一种将布尔值更改为布尔数组的方法,或者是否需要不同的解决方案。任何帮助将不胜感激。

【问题讨论】:

  • 你对数组了解多少?
  • 我想你的意思是:results[i] = (someNumbers[i] >= floor);

标签: java arrays boolean


【解决方案1】:

看起来你想要的是什么

boolean[] results = new boolean[someNumbers.length]; 
    // you have to initialize it
for (int i = 0; i < someNumbers.length; i++) {
    results[i] = someNumbers[i] >= floor; // ? true : false is redundant
    // ^ you're setting the ith element of the array, not the whole array
}

return results;

【讨论】:

    【解决方案2】:

    您只是忘记在数组的每个单元格中存储布尔值。将结果改为结果[i]

     public boolean[] boolsRule(int floor, int[] someNumbers) {
    
            boolean[] results;
            for (int i = 0; i < someNumbers.length; i++) {
                results[i] = (someNumbers[i] >= floor) ? true : false;
            }
    
            return results;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多