0

@ 文字列内の要素が異なるポイントをすばやく判断する方法があるかどうか疑問に思っていました。2 つのバイナリ文字列があり、同じではない場所がいくつあるか知りたいです。

1111111100010001111011100010001011011101001100111100110001000100
0001001011001101110110000101001111111010000000010001110001000000

だから私はforループとカウンターが必要だと思いますが、私が知っているのはcompare()と同様のものだけですが、charごとに移動する方法はありません助けてくれてありがとう

4

4 に答える 4

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 に答える
0

文字列をバイト配列に変換し、XOR (^) 演算子を使用します。

1の数を数えます。

于 2013-02-28T02:41:00.287 に答える
0

KMPのバリアントの独自の実装を作成する

于 2013-02-28T02:28:29.140 に答える