0
我的解密程序無法正常工作......破譯工作不正常
public static void decipherMessage() {
Scanner sc = new Scanner(in);
System.out.println("Enter keyword: ");
String decipher = sc.nextLine();
String plain = ("abcdefghijklmnopqrstuvwxyz");
String cipher = decipher + "abcdefghijklmnopqrstuvwxyz";
System.out.println("Enter enciphered message: ");
String ciphMsg = sc.nextLine();
String decipherMessage = ciphMsg.toLowerCase();
char[] chars = cipher.toCharArray();
Set<Character> charSet = new LinkedHashSet<Character>();
for (char c : chars) {
charSet.add(c);
}
StringBuilder cMap = new StringBuilder();
for (Character character : charSet) {
cMap.append(character);
StringBuilder original = cMap;
}
for (int i = 0; i < 26; i++)
{
char cipherTextChar = cMap.charAt(i);
char plainTextChar = plain.charAt(i);
decipherMessage = decipherMessage.replace(cipherTextChar,plainTextChar);
System.out.println("Deciphered message");
System.out.println(decipherMessage);
}
明文字母都應該更換加密的信
但是當我運行它,它只是再次給出了加密的消息沒有解密?
示例。
keyword: stack
plain : abcdefghijklmnopqrstuvwxyz
cipher: stackbdefghijlmnopqruvwxyz
message: overflow
ciphered message: mvhpbimw
除了相反。 使用我上面顯示的代碼,它只是給出了加密的消息,而沒有解密任何東西。
沒了deciphMsg和decipherMessage是兩回事:( 糟糕的命名規則,我知道。難道不使我的代碼過長? 我不會想被標記下來類似的東西。 – user10
然後'decipherMessage'不宣或者在任何地方初始化'deciphMsg' – trutheality
噢,我的壞 現在修好了 – user10