在char数组中查找事件的所有位置

时间:2015-01-27 11:52:30

标签: java arrays loops

我正在尝试编写一个方法,它接受一个字母(字符串)和一个char aray,它创建一个布尔数组。然后初始化布尔数组,所有位置都为false。 然后,for循环遍历char数组,对于在char数组中找到字母(guess)的每个位置,布尔数组中的相同位置标记为true。问题出在for循环的if部分。语法不是我的JDE接受的。 感谢任何提示。

    boolean[] printIfTrue = new boolean[wordInArray.length];
    for (int i = 0 ; i == wordInArray.length ; i++) {
        if (wordInArray[i] == guess ){                   // problem
            printIfTrue[i] == true;                      // problem
        }

    }

    return printIfTrue;
}

3 个答案:

答案 0 :(得分:1)

循环可以重写如下。此外,guess应为char类型。

for (int i = 0 ; i < wordInArray.length ; i++) {
    printIfTrue[i] = wordInArray[i] == guess;
}

答案 1 :(得分:0)

您无法将String与char进行比较。您的guess变量应为char类型(使用guess = valueEnteredByTheUserAsString.charAt(0))。

==是一个比较运算符。要为变量赋值,必须使用=

printIfTrue[i] = true;

我读了==,因为相同。:

if (wordInArray[i] == guess )

读作

  

如果wordInArray 的第i个字符与 guess

相同

我看了=,因为变为取值

printIfTrue[i] == true; 

读作

  

printIfTrue 的第i个元素变为 true

答案 2 :(得分:0)

==是关系运营商
 ==检查两个操作数的值是否相等,如果是,则条件变为真。

(A == B) is not true. 

=是分配运营商

=简单赋值运算符,将右侧操作数的值分配给左侧操作数

C = A + B will assign value of A + B into C

不要混合它们,正如@JB Nizet所说,

你不能直接比较String和Character,我假设 wordsInArray 是你的角色数组而是String,所以你可以使用

wordsInArray[i]==guess.charAt(i);
printIfTrue[i] = true;