我在 CodeHS 上卡在 Java 中的“3.8.12:替换字母”

I'm stuck on "3.8.12: Replace Letter" in Java on CodeHS

说明是:

编写一个方法,将一个字母的所有实例替换为另一个字母。

例如,

replaceLetter("hello", 'l', 'y')

returns

"heyyo"

我什至不确定从哪里开始,但到目前为止我已经知道了:

String str = "Hello world";
System.out.println (str);
str = str.replace("l", "y");
System.out.println (str);

但我必须让我的实际方法看起来像这样:

public String replaceLetter(String word, char letterToReplace, char replacingLetter)

所以输入任何字符串都可以,而不仅仅是我用作测试的 "Hello world"。

因此您需要获取参数并执行您在示例代码中使用 "Hello world" 执行的操作。所以在你的代码中,你有 "Hello world" 的任何地方都应该放这个词,因为它将充当他们放入方法中的内容的占位符。

举个简单的例子:

public void printMe(String wordToPrint){
    System.out.println(wordToPrint);
}

然后如果有人调用它,它看起来像这样:

printMe("Hello, world"); //prints out "Hello, world"

按照此模式,您可以使用

中的所有参数执行此操作
public String replaceLetter(String word, char letterToReplace, char replacingLetter)

正如其他人所提到的,您正在使用 Java 而不是 Javascript(基于您发布的代码)。

该方法如下所示:

public static String replaceLetter (String word, char original, char newChar) {
    return word.replace(original, newChar);
}

如果你想简单明了,那么你可以把字符串变成一个char[],遍历数组,比较后面的索引,然后将数组转换回来串起来 return 它。

例子

public static String replaceLetter (String word, char letterToReplace, char replacingLetter) {
    char[] wordChar = word.toCharArray();
    for (int i = 0; i < wordChar.length; i++) {
        if (wordChar[i] == letterToReplace) {
            wordChar[i] = replacingLetter;
        }
    }
    return String.valueOf(wordChar);
}