0

只是想知道是否有一种快速的方法来确定 @ 字符串中元素不同的点。我有 2 个二进制字符串,我想知道@它们不一样的地方有多少。

1111111100010001111011100010001011011101001100111100110001000100
0001001011001101110110000101001111111010000000010001110001000000

所以我想我需要一个 for 循环和一个计数器,但我只知道 compare() 和类似的东西,但不知道如何逐个字符地进行。谢谢你的帮助

4

4 回答 4

0

将字符串转换为字节数组并使用 XOR (^) 运算符。

计算 1 的个数。

于 2013-02-28T02:41:00.287 回答
0

编写自己的KMP变体实现

于 2013-02-28T02:28:29.140 回答
0
    public static int diff( byte [] a, byte [] b){
    int diff = 0;
    String byteAr1;
    String byteAr2;
    char A1 [];
    char A2 [];

    byteAr1 = hexToBin(a);
    byteAr2 = hexToBin(b);

    A1 = byteAr1.toCharArray();
    A2 = byteAr2.toCharArray();

    for( int i = 0; i < A1.length; i++){
        if(A1[i] != A2[i]){
            diff++;
        }
    }
    return diff;
}
于 2013-02-28T02:35:24.700 回答
0

你的弦总是一样长吗?如果是这样,您可以执行以下操作:

for(int i = 0; i < string1.length(); i++) {
    if(string1.charAt(i) == string2.charAt(i))
    //the two chars are equal
}

如果字符串的长度不同,则会失败,因为您将尝试访问不存在的字符

于 2013-02-28T02:35:48.487 回答