题解HJ29 | #字符串加解密#
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String encryptStr = in.nextLine(); String decryptStr = in.nextLine(); StringBuilder result1 = new StringBuilder(); StringBuilder result2 = new StringBuilder(); for (int i = 0; i < encryptStr.length(); i++) { if (Character.isLetter(encryptStr.charAt(i))) { result1.append(encryptChar(encryptStr.charAt(i))); } else { result1.append(encryptNum(encryptStr.charAt(i))); } } System.out.println(result1); for (int i = 0; i < decryptStr.length(); i++) { if (Character.isLetter(decryptStr.charAt(i))) { result2.append(decryptChar(decryptStr.charAt(i))); } else { result2.append(decryptNum(decryptStr.charAt(i))); } } System.out.println(result2); } //加密字母 public static char encryptChar(Character c) { //判断为大写 if (Character.isUpperCase(c)) { if (c == 'Z') { return 'a'; } else { return (char) (Character.toLowerCase(c) + 1); } } else { if (c == 'z') { return 'A'; } else { return (char) (Character.toUpperCase(c) + 1); } } } //解密字母 public static char decryptChar(Character c) { //判断为大写 if (Character.isUpperCase(c)) { if (c == 'A') { return 'z'; } else { return (char) (Character.toLowerCase(c) - 1); } } else { if (c == 'a') { return 'Z'; } else { return (char) (Character.toUpperCase(c) - 1); } } } //加密数字 public static char encryptNum(Character c) { if ('9' == c) { return '0'; } else { return (char) (c + 1); } } //解密数字 public static char decryptNum(Character c) { if ('0' == c) { return '9'; } else { return (char) (c - 1); } } }
有点麻烦但是不难