刽子手游戏;为什么没有.equals工作?

时间:2015-01-31 14:26:39

标签: java string equals

我正在做一个刽子手游戏,我不一定需要替代方法来实现这一点,但我有一段代码不会返回错误,但它也不起作用。

        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'

4 个答案:

答案 0 :(得分:1)

guessString; result.charAt(i)char。它编译的唯一原因是因为它被取消装箱到Character。但是String不能等于Character。可能有更好的方法,但是,您至少可以从String创建单个字符result.charAt(i)并进行比较。

答案 1 :(得分:0)

您正在将guess Stringresult中的单个字符进行比较。为了使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)) {