目前,我一直在浏览加密的消息(用户输入),并通过将每个字母与解码器数组进行匹配来对每个字母进行解码。即使在我设置的for循环中,我也一直给我一个超出范围的索引错误,我从消息的长度中减去了一个,以补偿从0开始的错误。
错误也只会在最后一个字符处发生(这就是35。这是我要测试的35字符串)。但是,当我尝试打印解码后的消息直到出现错误时,我只是得到null(我将每个解码后的char存储在数组中,并在for循环运行时打印存储的每个字符)。
这里是我目前停留的那段代码:
//Decoding message by looping through each letter in String message
for (int x = 0; x < (message.length() - 1); x ++) //Gets next letter in message
{
for (int y = 0; y < (decodedArray.length - 1); x++) //Goes through decodedArray array
{
if (String.valueOf(message.charAt(x)) == (decodedArray[y])) //Comparing character to each position in decodedArray
{
decodedMessage[x] = alphabetArray[y];
}
System.out.print(decodedMessage[x]); //Testing only. Prints each character stored in array but only printing nulls.
}
}
我尚未添加任何空格检查功能,因为我目前仍停留在此错误上,但是如果您可以添加任何错误,将不胜感激。我不确定将char与空格进行比较是否可行。
因此,我的主要目标是创建一个可以解密凯撒密码的程序。我已经进行了所有设置,以便将常规字母设置在一个数组中,然后将解码器数组设置在其中,我将其移位了...
==
进行比较,这将不起作用。相反,您需要使用Java的equals()
方法。