描述
1、对输入的字符串进行加解密,并输出。
2、加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。
3、解密方法为加密的逆过程。 本题含有多组样例输入。 数据范围:输入的两个字符串长度满足 ,保证输入的字符串都是大小写字母或者数字输入描述:
输入说明
输入一串要加密的密码
输入一串加过密的密码
输出描述:
输出说明
输出加密后的字符
输出解密后的字符
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextLine()) { String str = sc.nextLine(); // 加密 encode(str); // 解密 String str1 = sc.nextLine(); decode(str1); } } private static void decode(String str) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) { String temp = String.valueOf(str.charAt(i)); if(temp.matches("[a-zA-Z]+")) { if(str.charAt(i) == 'A') { sb.append('z'); } else if(str.charAt(i) == 'a') { sb.append('Z'); } else { char info = (char) (str.charAt(i) - 1); if(String.valueOf(info).matches("[a-z]")) { sb.append(String.valueOf(info).toUpperCase()); } else { sb.append(String.valueOf(info).toLowerCase()); } } } else { if(str.charAt(i) == '0') { sb.append('9'); } else { char info = (char) (str.charAt(i) - 1); sb.append(info); } } } System.out.println(sb.toString()); } private static void encode(String str) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) { String temp = String.valueOf(str.charAt(i)); if(temp.matches("[a-zA-Z]")) { if(str.charAt(i) == 'Z') { sb.append('a'); } else if(str.charAt(i) == 'z') { sb.append('A'); } else { char info = (char) (str.charAt(i) + 1); if(String.valueOf(info).matches("[a-z]")) { sb.append(String.valueOf(info).toUpperCase()); } else { sb.append(String.valueOf(info).toLowerCase()); } } } else { if(str.charAt(i) == '9') { sb.append('0'); } else { char info = (char) (str.charAt(i) + 1); sb.append(info); } } } System.out.println(sb.toString()); } }
题目来源:牛客网