只是想知道是否有一种快速的方法来确定@字符串中哪些元素不同。我有2个二进制字符串,我想知道@有多少个地方不一样。
1111111100010001111011100010001011011101001100111100110001000100
0001001011001101110110000101001111111010000000010001110001000000
所以我想我需要一个for循环和一个计数器,但我所知道的是compare()和类似的东西但不是如何通过char去char 谢谢你的帮助
答案 0 :(得分:0)
编写您自己的KMP
变体的实现答案 1 :(得分: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;
}
答案 2 :(得分:0)
你的琴弦长度是否一样?如果是这样,你可以这样做:
for(int i = 0; i < string1.length(); i++) {
if(string1.charAt(i) == string2.charAt(i))
//the two chars are equal
}
如果字符串的长度不同会失败,因为您将尝试访问不存在的字符
答案 3 :(得分:0)
将字符串转换为字节数组并使用XOR(^)运算符。
计算1的数量。