字符串加解密

题目描述

题目描述 一、对输入的字符串进行加解密,并输出。 2加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a; 当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0; 其余字符不作变化。 三、解密方法为加密的逆过程。   接口描述:     实现接口,每一个接口实现1个基本操做: void Encrypt (char aucPassword[], char aucResult[]):在该函数中实现字符串加密并输出 说明: 一、字符串以\0结尾。 二、字符串最长100个字符。   int unEncrypt (char result[], char password[]):在该函数中实现字符串解密并输出 说明: 一、字符串以\0结尾。     二、字符串最长100个字符。
输入描述:
输入说明  
输入一串要加密的密码  
输入一串加过密的密码


输出描述:
输出说明  
输出加密后的字符  
输出解密后的字符

输入例子:
abcdefg BCDEFGH

输出例子:
BCDEFGH abcdefg



方法一:
import java.util.Scanner;
 
/**
  * Created by Administrator on 2015/12/23.
  */
public class Main {
     public static void main(String[] args) {
         Scanner sc= new Scanner(System.in);
         while (sc.hasNext()){
             String strA= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" ;
             String strB= "bcdefghijklmnopqrstuvwxyzaBCDEFGHIJKLMNOPQRSTUVWXYZA1234567890" ;
             String str1=sc.next();
             String str2=sc.next();
             StringBuffer sb1= new StringBuffer();
             StringBuffer sb2= new StringBuffer();
             for ( int i= 0 ;i<str1.length();i++){
                 sb1.append(strB.charAt(strA.indexOf(str1.charAt(i))));
             }
             for ( int i= 0 ;i<str2.length();i++){
                 sb2.append(strA.charAt(strB.indexOf(str2.charAt(i))));
             }
             System.out.println(sb1);
             System.out.println(sb2);
         }
     }
}
方法二:
 
import java.util.Scanner;
 
/**
  * Author: 王俊超
  * Date: 2015/12/23 13:31
  * All Rights Reserved !!!
  */
public class Main {
     public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
//        Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt"));
         while (scanner.hasNext()) {
             String input = scanner.nextLine();
             System.out.println(encrypt(input));
             input = scanner.nextLine();
             System.out.println(unencrypt(input));
         }
 
         scanner.close();
     }
 
     /**
      * 字符串解密
      *
      * @param s
      * @return
      */
     private static String unencrypt(String s) {
         char [][] mask = {
                 { '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' },
                 { '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' },
                 { '9' , '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' }
         };
         return convert(s, mask);
     }
 
     /**
      * 字符串加密
      *
      * @param s
      * @return
      */
     private static String encrypt(String s) {
         char [][] mask = {
                 { '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' },
                 { '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' },
                 { '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '0' }
         };
 
         return convert(s, mask);
     }
 
     /**
      * 根据掩码表对字符串进行转换
      *
      * @param s
      * @param mask
      * @return
      */
     private static String convert(String s, char [][] mask) {
         StringBuilder builder = new StringBuilder(s.length());
         for ( int i = 0 ; i < s.length(); i++) {
             char c = s.charAt(i);
             if (c >= 'A' && c <= 'Z' ) {
                 builder.append(mask[ 0 ][c - 'A' ]);
             } else if (c >= 'a' && c <= 'z' ) {
                 builder.append(mask[ 1 ][c - 'a' ]);
             } else {
                 builder.append(mask[ 2 ][c - '0' ]);
             }
         }
         return builder.toString();
     }
}
相关文章
相关标签/搜索