Java 我正在创建一个hangman程序,我对word更新方法有一些问题

Java 我正在创建一个hangman程序,我对word更新方法有一些问题,java,methods,replace,charat,Java,Methods,Replace,Charat,当代码运行时,您请求char并键入一个字母,让我们说“e”,输出将使其成为eeeee,而不是在partial word方法中填充e。我不知道怎么修。我认为问题出在replaceChar方法或updatePartialWord方法中。我希望能得到一些帮助。谢谢 我需要保持方法输入相同,即使有更简单的方法 }根据 返回替换所有出现的 此字符串中的oldChar与newChar 本例中的单词是---,因此您将用字母替换位置i处出现的所有字符,即- 因此,所有角色都将成为您刚才输入的角色 相反,您应该更

当代码运行时,您请求char并键入一个字母,让我们说“e”,输出将使其成为eeeee,而不是在partial word方法中填充e。我不知道怎么修。我认为问题出在replaceChar方法或updatePartialWord方法中。我希望能得到一些帮助。谢谢 我需要保持方法输入相同,即使有更简单的方法

}

根据

返回替换所有出现的 此字符串中的oldChar与newChar

本例中的单词是---,因此您将用字母替换位置i处出现的所有字符,即-

因此,所有角色都将成为您刚才输入的角色

相反,您应该更改部分单词中的每个字符,如果且仅当机密单词中的等效字符与刚才输入的字符匹配,例如:

public static String replaceChar(String word, String secret, char c) {
    for (int i = 0; i < word.length(); i++) {
        if (secret.charAt(i) == c) {
            word = word.substring(0, i) + c + word.substring(i+1); 
        }
    }
    return word;
}
当然,即使进行了修复,您仍然存在一个问题:

System.out.println("The current partial word is: " + updatePartialWord(partialWord, secretWord, input));
这将输出由函数计算的新部分字,但实际上不会更改部分字。你需要的东西大致如下:

partialWord = updatePartialWord(partialWord, secretWord, input));
System.out.println("The current partial word is: " + partialWord);

我真的很喜欢这个解决方案,只是replaceChar方法的输入被改变了。有没有办法保持输入不变,输出不变。
if (c == secret.charAt(0))
    return replaceChar(partial, secret, c);
if (c == secret.charAt(1))
    return replaceChar(partial, secret, c);
// :
// and so on.
System.out.println("The current partial word is: " + updatePartialWord(partialWord, secretWord, input));
partialWord = updatePartialWord(partialWord, secretWord, input));
System.out.println("The current partial word is: " + partialWord);