利用map,使用凯撒密码(k=3)将字符串“trphzdvqrw exlowlqdgdb.”进行解密,结果错误。
package com.test.kaisamima;
import java.util.HashMap;
import java.util.Map;
/**
凯撒密码
@date 2022/04/06
/
public class Kaisamima {
private static final String str = "abcdefghijklmnopqrstuvwxyz";
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<Character, Character> map = init(3);
String s = "trphzdvqrw exlowlqdgdb.";
char[] ss = s.toCharArray();
StringBuffer sb = new StringBuffer();
for (char c : ss) {
Character cc = map.get(c);
if (cc == null) {
cc = c;
}
sb.append(cc);
}
System.out.println(sb + "===========");
}
private static Map<Character, Character> init(int k) {
Map<Character, Character> map = new HashMap<Character, Character>();
char strs[] = str.toCharArray();
for (char c : strs) {
int i = str.indexOf(c);
int index = i + k;
if (index >= strs.length) {
index = index % strs.length;
}
map.put(c, strs[index]);
}
return map;
}
}
代码呢??