按照你的对应表做的,结果与你列出的不符,是你那个表关系的问题,
逻辑上没有问题
--------------------------------------------------------------------
import java.util.HashMap;
import java.util.Map;
public class Test {
private static String pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static String patternAs = "WREAKHOVOCABDFGIJLMNPQSTUXZ";
private static Map<String, String> mapEnc = new HashMap<String, String>();
private static Map<String, String> mapDec = new HashMap<String, String>();
public static void main(String[] args) throws Exception {
for (int i = 0; i < pattern.length(); i++) {
String key = pattern.substring(i, i + 1);
String value = patternAs.substring(i, i + 1);
mapEnc.put(key, value);
}
for (int i = 0; i < pattern.length(); i++) {
String key = patternAs.substring(i, i + 1);
String value = pattern.substring(i, i + 1);
mapDec.put(key, value);
}
String src = "ATTACK AT DAWN";
String dest = toEncryption(src);
src = toDecrypt(dest);
System.out.println(dest);
System.out.println(src);
}
public static String toEncryption(String str) {
StringBuffer buff = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
String src = str.substring(i, i + 1);
if (src.matches("[A-Z]")) {
buff.append(mapEnc.get(src));
} else {
buff.append(src);
}
}
return buff.toString();
}
public static String toDecrypt(String str) {
StringBuffer buff = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
String src = str.substring(i, i + 1);
if (src.matches("[A-Z]")) {
buff.append(mapDec.get(src));
} else {
buff.append(src);
}
}
return buff.toString();
}
}
温馨提示:内容为网友见解,仅供参考