题目描述:
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。
在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。
经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)
1. 原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz)
2. 逆序存储(abcd -> dcba )
3. 大小写反转(abXY -> ABxy)
代码:
package lanqiao;
import java.math.BigInteger;
import java.util.*;
public class Main {
public static void main(String[] args)
{ Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
char[] arr = new StringBuilder(s).reverse().toString().toCharArray();
char[] res = new char[arr.length];
int i = 0;
for(char x:arr)
{
//右移三位
if(x >= 'a' && x <= 'z' - 3 || x >= 'A' && x <= 'Z' - 3)
res[i++] = (char)(x + 3);
else if(x >= 'z' - 2 && x <= 'z')
res[i++] = (char)('z' - x + 'a');
else if(x >= 'Z' - 2 && x <= 'Z')
res[i++] = (char)('Z' - x + 'A');
//大小写转换
if(res[i - 1] >= 'a' && res[i - 1] <= 'z')
res[i - 1] = (char)('A' + res[i - 1] - 'a');
else if(res[i - 1] >= 'A' && res[i - 1] <= 'Z')
res[i - 1] = (char)('a' + res[i - 1] - 'A');
System.out.print(res[i - 1]);
}
}
}