我正在做一个刽子手游戏,我不一定需要替代方法来实现这一点,但我有一段代码不会返回错误,但它也不起作用。
for (int i = (length - 1); i >= 0; i--) {
if (guess.equals(result.charAt(i))) {
System.out.println("There is an " + guess + " at position "
+ i);
}
}
猜测&结果是字符串。
为什么guess.equals
无法使用参数result.charAt(i)
,例如我猜字母'h'和result.charAt(3)
等于'h'
答案 0 :(得分:1)
guess
是String
; result.charAt(i)
是char
。它编译的唯一原因是因为它被取消装箱到Character
。但是String
不能等于Character
。可能有更好的方法,但是,您至少可以从String
创建单个字符result.charAt(i)
并进行比较。
答案 1 :(得分:0)
您正在将guess
String
与result
中的单个字符进行比较。为了使equals
起作用,您需要比较相同类型的对象,例如:
if (guess.equals(String.valueOf(result.charAt(i)))) {
答案 2 :(得分:0)
我猜(双关语)'猜测'是String&类型' result.charAt(I)'返回一个字符。
你可以尝试:
for (int i = (length - 1); i >= 0; i--) {
if (guess.equals(String.valueOf(result.charAt(i)))) {
System.out.println("There is an " + guess + " at position "
+ i);
}
}
答案 3 :(得分:0)
char guessChar = guess.charAt(0);
if (guessChar == result.charAt(i)) {