String s1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 原字符
String s2 = "yxmdacikntjhqlgoufszpwbrevYXMDACIKNTJHQLGOUFSZPWBREV"; // 加密后的字符
例如此种加密,我们可以通过字符串的比对,即可完成破译。
例如:
for (int i = 0; i < arr.length; i++) {
int j = s2.indexOf(arr[i]); // 输出当前字符在加密后字符中的位置
s3 += s1.substring(j, j + 1); // 找出原字符在此位置对应的字符
}
indexOf起到至关重要的作用,题目破译“EaFnjISplhFviDhwFbEjRjfIBBkRyY”,先通过arr字符数组存储密码中每个字符,通过循环一个一个导出并进行加密后的字符比对,在加密后的字符串中找到位置后,通过indexOf获取加密后字符串的位置下标,再到s1中去substring截取字符段,因为substring是前开后闭的,所以说截到一个字符就成功!