题解 | #字符串加解密#
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Scanner; // 直接使用数组进行映射,简单无脑 public class Main{ public static void main(String []args) throws Exception{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); System.out.println(encryption(str)); str = br.readLine(); System.out.println(decryption(str)); } public static String encryption(String str){ char[] lowercase = {'B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','A'}; char[] uppercase = {'b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a'}; int[] num = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; StringBuffer sb = new StringBuffer(str.length()); for(char c : str.toCharArray()){ if(Character.isLetter(c)){ if(c >= 65 && c <=90){ sb.append(uppercase[c - 'A']); } else if(c >= 97 && c <= 122){ sb.append(lowercase[c - 'a']); } } else if(Character.isDigit(c)){ sb.append(num[c - '0']); } } return sb.toString(); } public static String decryption(String str){ char[] lowercase = {'Z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y'}; char[] uppercase = {'z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y'}; int[] num = {9, 0, 1, 2, 3, 4, 5, 6, 7, 8}; StringBuffer sb = new StringBuffer(str.length()); for(char c : str.toCharArray()){ if(Character.isLetter(c)){ if(c >= 65 && c <=90){ sb.append(uppercase[c - 'A']); } else if(c >= 97 && c <= 122){ sb.append(lowercase[c - 'a']); } } else if(Character.isDigit(c)){ sb.append(num[c - '0']); } } return sb.toString(); } }