仅使用 charAt() 替换字符串字符

Replace a string character by only using charAt()

我是 Java 和 OOP 的新手。我目前正在学习 class 测试并有以下问题:

我的任务是仅使用 length()charAt() 方法替换给定句子中的某些字符。

我得到的句子是:

"This is the letter i!"

此方法:

public static String replaceCharacter(String w, char b, String v) { 
}

结果应该是这样的:

"Theasts easts the letter east"

这是我的起点。我不知道如何在不使用 substring() 方法的情况下解决这个问题。希望有人能帮我解释一下。

只需遍历 String,如果 charAt(i) 等于您的特定 char,则追加替换,否则追加 charAt(i)

public static String replaceCharacter(String w, char b, String v) {
    String result = "";
    for (int i = 0; i < w.length(); i++) {
        if (w.charAt(i) == b) {
            result += v;
        } else {
            result += w.charAt(i);
        }
    }
    return result;
}

Demo

诀窍是记住字符串本质上只是一个字符数组,如果我们想更改数组中的元素,我们可以使用循环来实现。

我假设:

String w = "This is the letter i!";
char b = 'i';
String v = "east";

那么方法是:

public static String replaceCharacter(String w, char b, String v) { 
    for (int i = 0; i < w.length(); i++) {
        if (w.charAt(i) != b) {
            // if the character is not 'i', we don't want to replace it
        } else {
            // otherwise, we want to replace it by "east"
        }
    }
}

找出应该放在 if 和 else 块中的代码应该很容易。祝你好运!