"赋值的左侧必须是charAt的变量"问题

jav*_*00b 3 java compiler-errors

private String kNow(String state, String guess) {
        for (int i = 0; i < word.length(); i++) {
            if (guess.equals(word.charAt(i))) {
                state.charAt(i) = word.charAt(i);
            }
        }
        return state;
    }
Run Code Online (Sandbox Code Playgroud)

state.charAt(i)部分指出标题中的问题.如果我的方法没有完全错误,我该如何解决问题.

小智 9

这不起作用的原因是因为它是一个类charAt(int x)的方法String- 即它是一个函数,你不能在Java中为函数赋值.

如果你想逐个字符地循环字符串,我可能会想要这样做:

Char[] GuessAsChar = guess.toCharArray();
Run Code Online (Sandbox Code Playgroud)

然后在GuessAsChar上操作.根据您的需要,可能更好(如在整理中)方法来搜索字符串中的字符等效性.