有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用java编写多字母转置密码的加密

这就是我目前拥有的。它应该找到以明文输入的字母,将其与字母表中的字母匹配(区分大小写),然后根据输入的数字进行转换,oddkey或evenkey稍后将实现。但目前,这是我得到的输出

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);   
}}

那么,我做错了什么,它只是重复bbbbbb而不是正确地移动字母?有什么建议吗


共 (1) 个答案

  1. # 1 楼答案

    你的问题是双重的

    1)您需要花一点时间正确缩进代码,使其易于阅读

    2)您的if条件无效(甚至不会编译)。在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);   
                    }
            }
    }