题解 | #字符串加解密#
字符串加解密
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 toEncode = in.nextLine(); String toDecode = in.nextLine(); System.out.println(encode(toEncode)); System.out.println(decode(toDecode)); } /** * 0-48 9-57 A-Z是65-90 a-z是97-122 * * @param str * @return */ private static String encode(String str) { StringBuffer stringBuffer = new StringBuffer(); for (int i = 0, len = str.length(); i < len; i++) { char c = str.charAt(i); int intC = (int) c; // 如果是数字就加1 if (intC > 47 && intC < 57) { intC++; stringBuffer.append((char) intC); continue; } // 特殊的9变0 if (intC == 57) { intC = 48; stringBuffer.append((char) intC); continue; } // 大写字母变小写并加一位 if (intC > 64 && intC < 90) { intC = intC + 32 + 1; stringBuffer.append((char) intC); continue; } // 特殊的Z变a if (intC == 90) { intC = 97; stringBuffer.append((char) intC); continue; } // 小写字母变大写并加一位 if (intC > 96 && intC < 122) { intC = intC - 32 + 1; stringBuffer.append((char) intC); continue; } // 特殊的z变A if (intC == 122) { intC = 65; stringBuffer.append((char) intC); } } return stringBuffer.toString(); } /** * 0-9是48-57 A-Z是65-90 a-z是97-122 * @param str * @return */ private static String decode(String str) { StringBuffer stringBuffer = new StringBuffer(); for (int i = 0, len = str.length(); i < len; i++) { char c = str.charAt(i); int intC = (int) c; // 如果是数字就加1 if (intC > 48 && intC < 58) { intC--; stringBuffer.append((char) intC); continue; } // 特殊的0变9 if (intC == 48) { intC = 57; stringBuffer.append((char) intC); continue; } // 大写字母变小写并减一位 A-Z是65-90 a-z是97-122 if (intC > 65 && intC < 91) { intC = intC + 32 - 1; stringBuffer.append((char) intC); continue; } // 特殊的Z变a if (intC == 65) { intC = 122; stringBuffer.append((char) intC); continue; } // 小写字母变大写并加一位 if (intC > 97 && intC < 123) { intC = intC - 32 - 1; stringBuffer.append((char) intC); continue; } // 特殊的z变A if (intC == 97) { intC = 90; stringBuffer.append((char) intC); } } return stringBuffer.toString(); } }