替换字符串中的字符?

时间:2017-02-10 13:07:29

标签: java string

我在用另一个字符串替换字符串中的特定字符时遇到问题。问题是,我可以想出删除旧字符,我得到的字符和字符串彼此相邻。这是我到现在为止所做的。

public class zeichenErsetzen {
public static String ersetzeZeichen(String w,char b,String v){
    String ersetzt="" ;
    for(int i=0;i<w.length();i++){
        ersetzt += w.charAt(i);
        if(w.charAt(i)==b)
            ersetzt +=v ;
    }
    return ersetzt;
}
public static void main(String []args){
    String str = "Dies ist ein i";

    System.out.println(ersetzeZeichen(str, 'i', "ast"));
}

}

这就是我使用这个

  

diastes iastst eiastn iast

这就是它应该如何

  

Dastes astst eastn ast

2 个答案:

答案 0 :(得分:1)

你的问题在于:

ersetzt += w.charAt(i);
if(w.charAt(i)==b)
    ersetzt +=v;

您要添加每个字母,无论它是否是您要替换的字母。 添加额外的else来解决此问题。

if(w.charAt(i)==b) {
    ersetzt +=v;
}
else {
    ersetzt += w.charAt(i);
}

现在只有当 与您要替换的字母匹配时才会添加一封信。

答案 1 :(得分:0)

使用StringBuilder类

    final String hello = "Hello";
    final StringBuilder sb = new StringBuilder(hello);
    sb.setCharAt(0, 'x');

    System.out.println("New String after replace: " + sb.toString());