恢复2个字符串之间的错误字符[关闭]

问题描述 投票:1回答:2

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

str1 = 001

str2 = 101

如上所示,如果我将str1与str2进行比较,则'1'是错误的char。我想用另一个替换这个char:'X'

str1 = 001

str2 = X01

这是我的方法,它返回一个String并有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)。你知道为什么吗?

java string equality
2个回答
1
投票

    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");

0
投票

一切完成后,str应该分配一次。

没有必要为两个字符串创建一个char数组......

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);
© www.soinside.com 2019 - 2024. All rights reserved.