1、对输入的字符串进行加解密,并输出。
2加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。
3、解密方法为加密的逆过程。
本题基本考的是代码编写能力,没有复杂算法的思想,只要清楚大小写转换及字母数字的ASCII码就可以了,代码如下:
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String input = sc.next(); String password = Encrypt(input); System.out.println(password); String pwd = sc.next(); String output = unEncrypt(pwd); System.out.println(output); } } public static String Encrypt(String input){ char[] inputArray = input.toCharArray(); StringBuffer sb = new StringBuffer(); for(int i=0;i<inputArray.length;i++){ if(inputArray[i]>='a'&&inputArray[i]<='z'){ if(inputArray[i]=='z'){ sb.append((char)('a'-32)); }else{ sb.append((char)(inputArray[i]-31)); } }else if(inputArray[i]>='A'&&inputArray[i]<='Z'){ if(inputArray[i]=='Z'){ sb.append((char)('A'+32)); }else{ sb.append((char)(inputArray[i]+33)); } }else if(inputArray[i]>='0'&&inputArray[i]<='9'){ if(inputArray[i]=='9'){ sb.append('0'); }else{ sb.append((char)(inputArray[i]+1)); } } } return sb.toString(); } public static String unEncrypt(String input){ char[] inputArray = input.toCharArray(); StringBuffer sb = new StringBuffer(); for(int i=0;i<inputArray.length;i++){ if(inputArray[i]>='a'&&inputArray[i]<='z'){ if(inputArray[i]=='a'){ sb.append((char)('a'-7)); }else{ sb.append((char)(inputArray[i]-33)); } }else if(inputArray[i]>='A'&&inputArray[i]<='Z'){ if(inputArray[i]=='A'){ sb.append((char)('A'+57)); }else{ sb.append((char)(inputArray[i]+31)); } }else if(inputArray[i]>='0'&&inputArray[i]<='9'){ if(inputArray[i]=='0'){ sb.append('9'); }else{ sb.append((char)(inputArray[i]-1)); } } } return sb.toString(); } }
