我明天有一个项目,我仍然无法理解。在阅读我的在线教科书以获取有关凯撒密码和加密的信息后,我仍然不知道该怎么做。我是编程的新手,所以大多数代码都不属于我的联盟,但这个项目看起来似乎太过高了,只有三个星期进入学期。
以下是说明: 您的任务是实施凯撒密码。你的密码必须带两个命令行参数,即 未加密的消息和k,转移的数量。您的代码会将未加密的邮件转换为 通过逐个移动每个字母来加密的。然后应该在屏幕上打印新加密的 信息。大写字母在转换期间应保持资本,小写字母应保持较低 案件。此外,确保空间完全不变。如果你不能解释其他标点符号 被改变,被认为是“超越”。
我将如何开始这个项目,你能否向有3周编码经验的人解释。
答案 0 :(得分:2)
第1步 创建你的字母表。
char[] alphabet = {'A', 'B', 'C', ... , 'X', 'Y', 'Z'};
第2步
转换您的明文。假设args [0]是你的原始消息,args [1]是你的移位,从命令行传入。
char[] plaintext = args[0].toCharArray();
int shift = args[1];
for(int i = 0; i < plaintext.length; i++) {
for(int j = 0; j < alphabet.length; j++) {
if(alphabet[j] == plaintext[i]) {
plaintext[i] = alphabet[(j + shift) % alphabet.length];
}
}
}
第3步
将移位的char数组放回字符串并输出答案。
String ciphertext = new String(plaintext);
System.out.println(ciphertext);
答案 1 :(得分:1)
这是家庭作业,所以你可能不会得到很多完整的答案。但这里有一些一般指导:
1 - 提到空格。因此,您需要将输入作为单个字符串,然后将其拆分(拆分)为一个单词数组。这将是您滚动的主数组,当此循环完成时,您的程序已完成。
2 - 现在你需要获取数组的元素(这是单个单词)并按每个字母处理它们。你需要遍历每个单词的字符并应用shift(k)
3 - 一旦完成,你需要“重新组装”你的短语,但在主阵列中的每个单词之后添加一个空格。将其作为“加密”消息输出到屏幕。
答案 2 :(得分:1)
创建一个包含要加密的字符的数组(顺序无关紧要)。在java中查找%
运算符,并使用它为输入字符串中的每个项计算加密值。
伪代码示例
您可能会发现Character课程很有用。
答案 3 :(得分:1)
您需要查看:
对于初级班来说,这是一个艰难的项目。
查看我制作的这个小程序,以展示如何将字符从小写字母a增加到小写字母b。
public class alphabet {
public static void main(String[] args) {
char a = 'a';
System.out.println("a currently equals: " + a);
System.out.println("++a now equals: " + (++a));
}
}