20届第二题:解密
/*
- 问题描述
本题总分:5 分
【问题描述】
小明设计了一种文章加密的方法:对于每个字母 c,将它变成某个另外的
字符 Tc。下表给出了字符变换的规则:
例如,将字符串 YeRi 加密可得字符串 EaFn。
小明有一个随机的字符串,加密后为
EaFnjISplhFviDhwFbEjRjfIBBkRyY
(由 30 个大小写英文字母组成,不包含换行符),请问原字符串是多少?
(如果你把以上字符串和表格复制到文本文件中,请务必检查复制的内容
是否与文档中的一致。在试题目录下有一个文件 str.txt,第一行为上面的字符
串,后面 52 行依次为表格中的内容。)
【答案提交】
这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个
只包含 30 个大小写英文字母的字符串,在提交答案时只填写这个字符串,填写
多余的内容将无法得分。
题解
答案:YeRikGSunlRzgDlvRwYkXkrGWWhXaA
解题:思路 》》建立一个HashMap集合 利用键值存入
然后键取出里面的值
*/
package _11第十一届;
import java.util.HashMap;
import java.util.Scanner;
public class Test02解密 {
public static void main(String[] args) {
HashMap<Character,Character> map=new HashMap<>();
Scanner in=new Scanner(System.in);
for(int i=0;i<52;i++){
char a=in.next().trim().charAt(0); //出去空格取第一个
char b=in.next().trim().charAt(0);
map.put(a, b);
}
String c=in.next();
char[]num =c.toCharArray();
for (char d : num) {
System.out.print(map.get(d));
}
}
}