这个问题在这里已经有答案了:
java,如何实现移位密码(凯撒密码)(5个答案)
上个月关门了。
我需要写一条信息,然后在每个字母后面加上一个数字
例如:如果我的信息是d,并且选择的数字是5,那么我的信息必须变成fghi。
我只是创建了一个for循环遍历表char,并创建了一个包含字母表中所有字母的表和每个字母的开关大小写。我以为这就像python一样,我可以循环到表的开头,但它告诉我索引越界了。我的可能性是什么?
char[] abc = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
for (int i = 0; 1 <= mesgIn.length; i++){
switch(mesgIn[i]) {
case 'a' -> mesgIn[i] = mesgIn[rot];
case 'b' -> mesgIn[i] = abc[1 + rot];
case 'c' -> mesgIn[i] = abc[2 + rot];
编辑:int rot是我想做的字母旋转数。等于用户想要的wtv
编辑2:找到一个更容易的方法。我只是在[]中添加了两次字母表,所以[0]是'a',但是[26]也是'a'
2条答案
按热度按时间rt4zxlrg1#
索引开始于
0
在一个String
最后一个索引是字符串的长度减去1
. 因此,循环的终止条件应该是i < mesgIn.length()
. 此外,还可以使用char
价值观就像你对待int
价值观。输出:
o4hqfura2#
您还可以将一些标准数据结构与定义良好的方法结合使用。
输出