2016-04-10 60 views
0

我一直在使用polybius方塊對我的程序進行加密。雖然我已經得到了這個工作,但需要說的是,當一個單詞被加密時,它需要爲不止一次出現的字母選擇替代數字。JAVA - 使用數組進行加密

例如'E'在加密時需要用15或61表示,並且它必須交替。我正在努力尋找解決方案,任何反饋都會很棒。

這裏是目前我的源代碼:

public class Encryption { 
private static char polybiusSquare[][] = { { 'A', 'B', 'C', 'D', 'E', 'F' }, 
              { 'G', 'H', 'I', 'K', 'L', 'M' }, 
              { 'N', 'O', 'P', 'Q', 'R', 'S' }, 
              { 'T', 'U', 'V', 'W', 'X', 'Y' }, 
              { 'Z', 'E', 'T', 'A', 'O', 'N' }, 
              { 'E', 'T', 'A', 'O', 'J', ' ' } }; 

public static String encryptMessage(String message) { 
    String encipheredMessage = ""; 
    for (int x = 0; x < message.length(); x++) { 
     encipheredMessage = encipheredMessage + encryptCharacter(message.charAt(x)); 
    } 
    return encipheredMessage; 
} 

public static String encryptCharacter(char currentChar) { 
    String returnGridRef = ""; 
    for (int x = 0; x < 6; x++) { 
     for (int y = 0; y < 6; y++) { 
      if (currentChar == polybiusSquare[x][y]) { 
       returnGridRef = Integer.toString(x + 1) + Integer.toString(y + 1); 
      } 
     } 
    } 
    if (returnGridRef.equals("")) 
     return "00"; 
    else 
     return returnGridRef; 
} 
+0

問題和代碼的質量比我在幾天內從新用戶看到的要好得多。 – MikeC

回答

0

維持保持該下一組要被用於的重複字符值的數據結構;它只保存重複字符的值。初始化它。

在'encryptCharacter'中檢查參數是否是這些字符之一,如果是,則使用數據結構中的值並使用下一次使用的值(僅限該字符)更新它。

鑑於你的Q和代碼的質量,我期待你可以從這裏拿走它。

+0

感謝很多生病的小提琴手。 – Kallendo96

+0

我一直在看這個,但我仍在掙扎。我仍然對Java很陌生。你有這樣的例子嗎? – Kallendo96

+0

下面是[Java中的地圖數據結構]示例(https://examples.javacodegeeks.com/java-basics/java-map-example/)。我希望你有一本很好的Java書或者你正在學習或者從中學習的網站。如果您嘗試通過在SO或其他論壇上發佈問題來學習,這將是一條漫長而艱難的道路。 – MikeC

相關問題