思路:
加密:
- 1.字母变换大小写,并变为它的后一位
- 2.数字变为它的后一位
- 3.其他字符不变
解密:
- 1.字母变换大小写,并改为前一位(注:a-Z,A-z)
- 2.数字变为前一位(注:0-9)
- 3.其他字符不变
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.next();//要加密的字符串
String parseStr = sc.next();//要解密的字符串
System.out.println(JiaMi(str));
System.out.println(JieMi(parseStr));
}
}
/**
* 加密
* @param str
* @return
*/
private static String JiaMi(String str){
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++){
//处理小写字母
if (chars[i] >= 'a' && chars[i] <= 'z'){//为小写字母
if (chars[i] == 'z'){
chars[i] = 'A';
}else {
chars[i] = (char) (chars[i] - 31);
}
}else if (chars[i] >= 'A' && chars[i] <= 'Z'){//处理大写字母
if (chars[i] == 'Z'){
chars[i] = 'a';
}else {
chars[i] = (char) (chars[i] + 33);
}
}else if (chars[i] >= '0' && chars[i] <= '9'){//处理为数字的情况
if (chars[i] == '9'){
chars[i] = '0';
}else {
chars[i] = (char) (chars[i] + 1);
}
}
}
return new String(chars);
}
/**
* 解密
* @param parseStr
* @return
*/
private static String JieMi(String parseStr){
char[] chars = parseStr.toCharArray();
for (int i = 0; i < chars.length; i++){
//处理小写字母
if (chars[i] >= 'a' && chars[i] <= 'z'){//为小写字母
if (chars[i] == 'a'){
chars[i] = 'Z';
}else {
chars[i] = (char) (chars[i] - 33);
}
}else if (chars[i] >= 'A' && chars[i] <= 'Z'){//处理大写字母
if (chars[i] == 'A'){
chars[i] = 'z';
}else {
chars[i] = (char) (chars[i] + 31);
}
}else if (chars[i] >= '0' && chars[i] <= '9'){//处理为数字的情况
if (chars[i] == '0'){
chars[i] = '9';
}else {
chars[i] = (char) (chars[i] - 1);
}
}
}
return new String(chars);
}
}