尝试编写凯撒密码程序时,我的加密方法有问题。[爪哇]
所以在学校我必须写一个程序来实现凯撒密码。我正在这样做,而且进展顺利,但是,加密方法本身并没有按照我的计划进行
例如,假设我们要加密字符串“abc”
它的意思是:
abc
结果是:
bbc
现在,我确切地知道是哪些代码行导致了这个问题。唯一的问题是我不知道如何修复它
这是我的密码:
public static void encrypt(String toencrypt)
{
unencrypted = toencrypt.toLowerCase();
char[] sEn = unencrypted.toCharArray();
char[] enEd = new char[sEn.length];
if(toencrypt.length() > 0)
{
for(int i = 0; i < ALPHABET.length; i++)
{
for(int j = 0; j < sEn.length; j++)
{
if(sEn[j] == ALPHABET[i])
{
sEn[j] = CIPHERBET[i];
}
//Below is the 'if' statement causing the issue
if(enEd[j] == 0)
{
enEd[j] = sEn[j];
}
}
}
String bts = new String(enEd);
encrypted = bts;
System.out.println("The encrypted message is: " + encrypted);
}
else
{
System.out.println("Please enter a string: ");
}
}
如果您对方法中未明确说明的任何数据类型感到困惑,请参见:
- 字母表是一个字符数组
- CIPHERBET也是一个字符数组
我将非常感激我能得到的任何和所有帮助
先谢谢你
# 1 楼答案
你可以稍微改变一下循环
我们总是根据字符串中的字符数运行外部循环。 就我所理解的问题而言,如果字符在字符数组中,则需要转换该字符,否则需要保留上一个字符串的现有值
希望能有帮助