public static boolean check(String s) { char[] schar = s.toCharArray(); int a = 0; for(int i=1;i<schar.length-3;i++) { a = (char) (a^schar[i]); } a = (a%65536); String b = Integer.toHexString(a); if(s.substring(s.length()-2).contentEquals(b)) { return true; } return false; }
时间: 2023-07-15 12:13:12 浏览: 223
这是一个检查字符串是否合法的方法。它的实现方式是将字符串中的某些字符进行异或运算,然后将运算结果取模后转换成十六进制字符串,最后将这个字符串与输入字符串的末尾两个字符进行比较,如果相同则返回true,否则返回false。
具体来说,这个方法首先将输入字符串转换成字符数组schar,然后从数组的第二个元素开始,依次对每个元素进行异或运算,将运算结果保存在变量a中。最后,将a对65536取模(相当于取a的低16位),并将结果转换成十六进制字符串。最后,将这个字符串与输入字符串的末尾两个字符进行比较,如果相同则返回true,否则返回false。
需要注意的是,这个方法只能检查字符串是否符合一定的格式要求,并不能保证字符串的安全性。如果需要进行安全检查,需要使用更加严格的加密算法。
阅读全文