回 帖 发 新 帖 刷新版面

主题:如何实现一个加密Application程序

从键盘输入一个字母,输出这个字母加密后的结果。加密操作是将字母变换成倒序的字母,例如A变成Z,B变成Y。等等

回复列表 (共3个回复)

沙发


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ChangeLetter {
    public static void main(String[] args) {
        String outputStr = "";
                     System.out.print("请输入字母:");
        //从键盘输入字母
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        try {
            //读取行,赋值给inputStr
            String inputStr = br.readLine();            
            for(int i=0;i<inputStr.length();i++){
                //将转换后的字符连接成字符串输出
                outputStr = outputStr + changeLetter(inputStr.charAt(i));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        System.out.println(outputStr);
    }
    public static char changeLetter(char c){
        //用于后台打印,知道Unicode码
        /*Integer num1 = 'A';
        Integer num2 = 'Z';
        Integer num3 = 'a';
        Integer num4 = 'z';        
        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println(num4);*/
        //unicode码
        //A值为65
        //Z值为90
        //a值为97
        //b值为122        
        
        int letter = c;        
        char character = 0;
        if(c>=65&&c<=90){
            //比如输入B,则运算步骤如下:
            //90-(66-65)=89,89转换成字符则为Y
            //以下小写的同理
            character = (char)(90-(letter-65));
        }
        if(c>=97&&c<=122){
            character = (char)(122-(letter-97));
        }        
        return character;
    }
}

运行结果:
请输入字母:ABCXYZabcxyz
ZYXCBAzyxcba

板凳

import java.util.Scanner;

public class Encrypt
{
    private static String tb1 = "ZYXWVUTSRQPONMLKJIHGFEDCBA";
    private static String tb2 = "zyxwvutsrqponmlkjihgfedcba";
    public static void main(String[] args)
    {
        Scanner cin = new Scanner(System.in);
        String str1 = cin.next();
        int len = str1.length();
        StringBuffer str2 = new StringBuffer(len);
        for(int i = 0; i < len; i++)
        {
            if(Character.isUpperCase(str1.charAt(i)))
                str2.append(tb1.charAt(str1.charAt(i) - 'A'));
            else
                str2.append(tb2.charAt(str1.charAt(i) - 'a'));
        }
        System.out.println(str2);
    }
}

3 楼


你的意思是置换加密算法吧,定义一个字符数组存放a--z,再逐字比较读入字符,用indexof返回索引值用J=25-i替换i即可~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册