Java中的凯撒密码

时间:2013-12-31 13:50:56

标签: java string cryptography

我正在尝试实施Caesar cipher

但在这样做的过程中,我得到了一个意想不到的输出,我无法纠正。

有人会帮助我吗?

我的代码如下:

import java.io.*;

public class encryptology
{
    public static void main(String args[])throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int t, move = Integer.parseInt(br.readLine());
        String s = "", st = br.readLine();
        int l = st.length();

        for(int x = 0; x < l; x++){
            char c = st.charAt(x);
            t = (int)c;
            if(move != 0){
                t = t + move;
                if(t > 90){
                    t = t - 26;        
                }
                if(t < 65){
                    t += 26;
                }
                c = (char)t;
                s = st + c;
            }
        }
        System.out.println(s);
    }
}

我输入了move = 2st = charles
输出为:charles[

1 个答案:

答案 0 :(得分:0)

您正在更改错误的字符串。实际上,您正在查看带有字符串st的结果并添加加密的char。变化

s=st+c;

s=s+c;