我正在尝试开发一种可以加密,解密和破坏加密文本的Ceasar-Cipher-Programm。到目前为止,一切都工作正常,但是现在我测试了如何实现加密断路器的想法,但我收到了NullPointer-Exception,我不明白为什么。你能帮助我吗? 发生这种情况的方法如下:
private String isEnglish(String[] possibleSolutions) {
/*likelyness stores the number of matches for each decrypt-solution
possibleSolutions[] stores all 25 decrypted text-variants*/
int[] likelyness = new int[possibleSolutions.length];
for (int i = 0; i < possibleSolutions.length; i++) {
int hits = 0;
for (int j = 0; j < english.length; j++) {
if (possibleSolutions[i].contains(english[j])) {
hits++;
}
}
likelyness[i] = hits;
}
int index = highest(likelyness);
if (index == -1) {
return "";
} else {
return possibleSolutions[index] + likelyness[index];
}
}
更具体地说:
if (possibleSolutions[i].contains(english[j]))
我如何实现断路器的想法如下: -每25个可能的位移解密文本并将结果存储在 数组。
-使用数组存储100个最常用的英语单词。
-遍历文本的每个解密版本,检查字典中的单词是否是当前解密文本的一部分。
-如果有任何匹配项,请对它们进行计数并检查是否有足够的匹配项以假定此解密解决方案是正确的解决方案。
它可以正常工作并计算匹配(命中),但是在for循环终止后,由于Null-Pointer-Exception而导致程序退出。 同样,它似乎也没有将匹配数分配给可能性数组。
我在这里感到很失落,任何帮助将不胜感激。 谢谢