这样做非常容易理解
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
import java.util.Scanner; public class Main { public static void main(String[] args) { /** * 对输入的字符串进行加解密,并输出。 * * 加密方法为: * * 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a; * * 当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0; * * 其他字符不做变化。 * * 解密方法为加密的逆过程。 * 数据范围:输入的两个字符串长度满足 * 1 ≤ 𝑛 ≤ 1000 * * 1≤n≤1000 ,保证输入的字符串都是只由大小写字母或者数字组成 */ Scanner sc = new Scanner(System.in); String s1 = sc.nextLine(); String s2 = sc.nextLine(); StringBuilder builder1 = new StringBuilder(); // 加密 for (char c : s1.toCharArray()) { if (c >= 'a' && c <= 'z') { if (c == 'z') { c = 'A'; } else { // 移到下一位并转换大小写 c = Character.toUpperCase(++c); } } else if (c >= 'A' && c <= 'Z') { if (c == 'Z') { c = 'a'; } else { // 下一位且转换大小写 c = Character.toLowerCase(++c); } } else if (c >= '0' && c <= '9') { if (c == '9') { c = '0'; } else { c = ++c; } } // 其他字符不会修改原有的字符值 builder1.append(c); } StringBuilder builder2 = new StringBuilder(); // 解密 for (char c : s2.toCharArray()) { if (c >= 'a' && c <= 'z') { if (c == 'a') { c = 'Z'; } else { // 移到上一位并转换大小写 c = Character.toUpperCase(--c); } } else if (c >= 'A' && c <= 'Z') { if (c == 'A') { c = 'z'; } else { // 上一位且转换大小写 c = Character.toLowerCase(--c); } } else if (c >= '0' && c <= '9') { if (c == '0') { c = '9'; } else { c = --c; } } // 其他字符不会修改原有的字符值 builder2.append(c); } System.out.println(builder1); System.out.println(builder2); } }