这就是我目前所拥有的。它应该找到以明文输入的字母,将它(区分大小写)与字母表中的字母匹配,然后根据输入的奇数键或偶数键移位,我将在稍后实现。但目前,这是我得到的输出。
what would you like to encrypt?
abcdefg
enter oddkey
1
Now enter the evenkey
1
B
BB
BBB
BBBB
BBBBB
BBBBBB
BBBBBBB
这是代码的开头
String PlainText = "", cipherText = "";
String alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz- ";
System.out.println("what would you like to encrypt?");
PlainText = input.nextLine();
System.out.println("enter oddkey");
oddkey = input.nextInt();
System.out.println("Now enter the evenkey");
evenkey = input.nextInt();
for ( int i = 0; i < PlainText.length(); i ++)
{for (int m = 1; m < alpha.length(); m ++ )
{if (alpha.charAt(m-1) == PlainText.charAt(i));
cipherText = cipherText + alpha.charAt(m - 1 + evenkey);
System.out.println(cipherText);
}}
那么我错误的是它只是重复BBBBBBB而不是正确地移动字母?有什么建议吗?
答案 0 :(得分:1)
你的问题是双重的。
1)您需要花点时间正确缩进代码,以便于阅读。
2)你的if条件无效(甚至不会编译)。在优选后,你需要一个大括号{
,但绝对不是分号。
我认为如果您将if块更改为此,它将帮助您解决问题:
for ( int i = 0; i < PlainText.length(); i ++) {
for (int m = 1; m < alpha.length(); m ++ ) {
if (alpha.charAt(m-1) == PlainText.charAt(i)){
cipherText = cipherText + alpha.charAt(m - 1 + evenkey);
System.out.println(cipherText);
}
}
}