java 异或 字符串找不同 是怎么实现的??

Python08

java 异或 字符串找不同 是怎么实现的??,第1张

函数是运用了异或运算的特点,当两次异或同一字符的时候,他们的结果就相互抵消(等同于没有异或),所以严格说来,这个函数并不能判断两个字符串是否完全相同。他只是判断把这两个字符串,的所有字符全部统计一遍以后,是不是所有的字母都出现偶数次。如果是函数就返回0,否则就返回非0。

存在按位异或,就是根据数据在内存中的二进制数的存放形式进行异或操作

但是不存在字符串的异或

如果在内存中的数据:01010101和10101010异或,结果就是11111111,然后再将

11111111转换成相应的数据输出结果

注意:Java中没有字符串的异或、与、或、非操作,不是C语言那样(除非是你自己定义异或操作)

private String twoStringXor(String str1, String str2) {

byte b1[] = str1.getBytes()

byte b2[] = str2.getBytes()

byte longbytes[],shortbytes[]

if(b1.length>=b2.length){

longbytes = b1

shortbytes = b2

}else{

longbytes = b2

shortbytes = b1

}

byte xorstr[] = new byte[longbytes.length]

int i = 0

for ( i < shortbytes.length i++) {

xorstr[i] = (byte)(shortbytes[i]^longbytes[i])

}

for (i<longbytes.lengthi++){

xorstr[i] = longbytes[i]

}

return new String(xorstr)

}