我正在尝试实施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 = 2
和st = charles
输出为:charles[
答案 0 :(得分:0)
您正在更改错误的字符串。实际上,您正在查看带有字符串st
的结果并添加加密的char。变化
s=st+c;
到
s=s+c;