字符串加解密

来源:互联网 发布:杨米尔斯方程地位 知乎 编辑:程序博客网 时间:2024/05/22 04:04

package oj.test;

import java.util.*;

public class Demo4 {

 /**
  * @字符串加解密
  *  
  * 题目描述
  * 1、对输入的字符串进行加解密,并输出。
  *
  * 2加密方法为:
  * 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
  * 当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
  * 其他字符不做变化。
  *
  * 3、解密方法为加密的逆过程
  */
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  String str1 = sc.nextLine();
  String str2 = sc.nextLine();
  code(str1);  //加密
  uncode(str2);  //解密
 
 }
 
private static void code(String str1) {
 char[] ch = str1.toCharArray();
 for(int i=0;i<str1.length();i++){
  if(ch[i]>='a' && ch[i]<'z'){
   ch[i] = (char) (ch[i]+1-32) ;
  }else
  if(ch[i]=='z'){
   ch[i] = 'A';
  }else
  if(ch[i]>='A' && ch[i]<'Z'){
   ch[i] = (char) (ch[i]+1+32) ;
  }else
  if(ch[i]=='Z'){
   ch[i] = 'a';
  }else
  if(ch[i]>='0' && ch[i]<'9'){
   ch[i] = (char) (ch[i]+1);
  }else
  if(ch[i]=='9'){
   ch[i] = '0';
  }
 }
 sop(new String(ch));
}

private static void uncode(String str2) {
 char[] ch = str2.toCharArray();
 for(int i=0;i<str2.length();i++){
  if(ch[i]>'a' && ch[i]<='z'){
   ch[i] = (char) (ch[i]-1-32) ;
  }else
  if(ch[i]=='a'){
   ch[i] = 'Z';
  }else
  if(ch[i]>'A' && ch[i]<='Z'){
   ch[i] = (char) (ch[i]-1+32) ;
  }else
  if(ch[i]=='A'){
   ch[i] = 'z';
  }else
  if(ch[i]>'0' && ch[i]<='9'){
   ch[i] = (char) (ch[i]-1);
  }else
  if(ch[i]=='0'){
   ch[i] = '9';
  }
 }
 sop(new String(ch));
 
}

private static void sop(Object o) {
  System.out.println(o);
 }

}

 

0 0