Java学习之“凯撒密码”实例

来源:互联网 发布:nba2k17帅哥捏脸数据 编辑:程序博客网 时间:2024/06/06 03:56

代码实现容易,关键点在于,字母移位后是否越界,及相应的处理

public class Caesar {    String s;    int key;    Caesar(String es, int n)    {        this.s = es;        this.key = n;    }    public String process()    {        String es = "";        for (int i = 0; i < s.length(); i++)        {            char c = s.charAt(i);            if (c >= 'a' && c <= 'z')            {                c += key % 26;                if (c < 'a')                    c += 26;                if (c > 'z')                    c -= 26;            }            else if (c >= 'A' && c <= 'Z')            {                c += key % 26;                if (c < 'A')                    c += 26;                if (c > 'Z')                    c -= 26;            }            es += c;        }        return es;    }    public static void main(String[] args)    {        String s = "hello";        Caesar c = new Caesar(s, 2);        String str = c.process();        System.out.println("加密字符串为: " + str);        Caesar c1 =new Caesar(str, -2);        str = c1.process();        System.out.println("解密字符串为:" + str);    }}
原创粉丝点击