如何更改字符串中的字符 - 替换字母java

时间:2017-07-21 13:05:35

标签: java

模拟主题无法解决我的问题。 我需要在给定的字符串'a'中将字符'x'更改为str

示例:“abc”=“xbc”。我只能使用substring(), charAt() - 没有replace()方法。

到目前为止我的代码:

public static String ersetze(String text){
    for(int i = 0; i<text.length(); i++){

        if(text.substring(i, i+1).charAt(i) == 'a'){
            text.substring(i, i+1) = 'x'; 
        }
    }
    //return statement
}

现在错误是text.substring(i, i+1) = 'x';,左侧分配必须是变量 - 清除。但是现在如何将字母赋予变量?如果我声明char x;如何将x放入字符串中以替换字母?

4 个答案:

答案 0 :(得分:5)

Java中的{p> Stringimmutable,因此您无法替换String的字母。您需要创建一个新的String。

您可以将String转换为chars数组并仅更改所需的字符串,然后从该数组中创建一个新的String:

public static String ersetze(String text){
    char[] letters = text.toCharArray();

    for (int i = 0; i < letters.length; i++){
        if (letters[i] == 'a') {
            letters[i] = 'x';
        }
    }

    return new String(letters);
}

答案 1 :(得分:5)

字符串不能替换为字符。首先需要创建字符数组&amp;然后替换。

public static String ersetze(String text){
    char[] result = text.toCharArray();
    for(int i = 0; i < result.length; i++){
        if(result [i] == 'a'){
            result[i] = 'x';
        }
    }
    return String.valueOf(result);
}

答案 2 :(得分:2)

如果你真的需要这个并且你只能使用你提到的方法,那么你每次找到所需的char时都可以这样做: text = text.substring(0, i) + x + text.substring(i + 1);

答案 3 :(得分:0)

将字符串转换为字符数组(包含在java API中),遍历数组并用&#34; x&#34;&#替换所有&#34; a&#34;&#; 39;在char数组中,然后将其更改回字符串。