恢复 2 个字符串之间的错误字符

Recover wrong char between 2 strings

我有 2 个字符串:str1 和 str2 它们几乎相同。

str1 = 001

str2 = 101

正如您在上面看到的,如果我将 str1 与 str2 进行比较,“1”是错误的字符。 我想用另一个替换这个字符:'X'

str1 = 001

str2 = X01

这是我的方法,它 returns 一个字符串并有 2 个字符串参数(str1 和 str2):

    char charArray1[] = str1.toCharArray();
    char charArray2[] = str2.toCharArray();
    String str = "";
    
    for(int i=0; i<charArray1.length; i++){
        if(charArray1[i] != charArray2[i]){
            charArray2[i]='X';
        }       
    str = new String(charArray2);
    }
    System.out.print(str1 + " is now : " + str + "\n");
    return str;

但是我不知道为什么它不起作用。确实,我不能修改str2的错误字符'1'(我想要X01而不是101)..你知道为什么吗?


    String str1 = "001";
    String str2 = "101";
    char charArray1[] = str1.toCharArray();
    char charArray2[] = str2.toCharArray();
    String str = "";

    for(int i=0; i<charArray1.length; i++){
        if(charArray1[i] != charArray2[i])
        {
            charArray2[i] = 'X';
        }       else
    str = new String(charArray2);
    }
    System.out.print(str1 + " is now : " + str + "\n");

str应该在全部完成后分配一次。

无需为两个字符串创建字符数组...

char charArray1[] = str1.toCharArray();

for(int i=0; i<charArray1.length; i++) {
    if (charArray1[i] != str2.get(i)) {
        charArray1[i] = 'X';
    }
}
String str = new String(charArray1);
System.out.println(str1 + " is now : " + str);