在 char 数组中查找出现的所有位置
Find all positions of an occurence in a char array
我正在尝试编写一个接受单个字母(字符串)和一个创建布尔数组的字符数组的方法。然后将布尔数组初始化为所有位置都为 false。
然后 for 循环遍历 char 数组,对于在 char 数组中找到字母(猜测)的每个位置,布尔数组中的相同位置被标记为 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;
}
您不能将字符串与字符进行比较。您的 guess
变量应该是 char
类型(使用 guess = valueEnteredByTheUserAsString.charAt(0)
)。
==
是比较运算符。要为变量赋值,必须使用 =
:
printIfTrue[i] = true;
我读 ==
因为 与 相同。:
if (wordInArray[i] == guess )
读作
if the ith char of wordInArray is same as guess
我读 =
是因为 变成了 或 取值 :
printIfTrue[i] == true;
读作
the ith element of printIfTrue becomes true
循环可以重写如下。此外,guess
应该是 char
.
类型
for (int i = 0 ; i < wordInArray.length ; i++) {
printIfTrue[i] = wordInArray[i] == guess;
}
== 是关系运算符
== 检查两个操作数的值是否相等,如果相等则条件成立。
(A == B) is not true.
= 是赋值运算符
= 简单赋值运算符,将右侧操作数的值分配给左侧操作数
C = A + B will assign value of A + B into C
不要混用,正如@JB Nizet 所说,
你不能直接比较 String 和 Character ,我假设 wordsInArray 是你的字符数组而 guess 是字符串,所以你可以使用
wordsInArray[i]==guess.charAt(i);
printIfTrue[i] = true;
我正在尝试编写一个接受单个字母(字符串)和一个创建布尔数组的字符数组的方法。然后将布尔数组初始化为所有位置都为 false。 然后 for 循环遍历 char 数组,对于在 char 数组中找到字母(猜测)的每个位置,布尔数组中的相同位置被标记为 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;
}
您不能将字符串与字符进行比较。您的 guess
变量应该是 char
类型(使用 guess = valueEnteredByTheUserAsString.charAt(0)
)。
==
是比较运算符。要为变量赋值,必须使用 =
:
printIfTrue[i] = true;
我读 ==
因为 与 相同。:
if (wordInArray[i] == guess )
读作
if the ith char of wordInArray is same as guess
我读 =
是因为 变成了 或 取值 :
printIfTrue[i] == true;
读作
the ith element of printIfTrue becomes true
循环可以重写如下。此外,guess
应该是 char
.
for (int i = 0 ; i < wordInArray.length ; i++) {
printIfTrue[i] = wordInArray[i] == guess;
}
== 是关系运算符
== 检查两个操作数的值是否相等,如果相等则条件成立。
(A == B) is not true.
= 是赋值运算符
= 简单赋值运算符,将右侧操作数的值分配给左侧操作数
C = A + B will assign value of A + B into C
不要混用,正如@JB Nizet 所说,
你不能直接比较 String 和 Character ,我假设 wordsInArray 是你的字符数组而 guess 是字符串,所以你可以使用
wordsInArray[i]==guess.charAt(i);
printIfTrue[i] = true;