2016-04-10 5 views
0

Ich habe an einer Verschlüsselung für mein Programm mit einem Polybius-Quadrat gearbeitet. Obwohl ich diese Funktion habe, lautet die Anforderung, dass wenn ein Wort verschlüsselt ist, es eine alternative Nummer für Buchstaben auswählen muss, die mehr als einmal vorkommen.JAVA - Verschlüsselung mit einem Array

Zum Beispiel muss "E" durch 15 oder 61 dargestellt werden, wenn verschlüsselt und es muss sich abwechseln. Ich kämpfe um eine Lösung und jede Rückmeldung wäre großartig.

Hier ist meine Quellcode zur Zeit:

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

Viel bessere Qualität von Frage und Code als ich von neuen Benutzern in mehreren Tagen gesehen habe. – MikeC

Antwort

0

eine Datenstruktur beibehalten, die die nächste Reihe von Werten gilt für die wiederholten Zeichen verwendet werden; Es enthält nur Werte für wiederholte Zeichen. Initialisieren Sie es im Voraus.

In "encryptCharacter" prüfen, ob das Argument einer dieser Zeichen ist, und wenn ja, verwenden Sie den Wert aus der Datenstruktur und aktualisieren Sie ihn mit dem Wert, der das nächste Mal verwendet wird (nur das char).

Angesichts der Qualität Ihrer Q und der Code erwarte ich, dass Sie es von hier aus nehmen können.

+0

Vielen Dank krank damit herumspielen. – Kallendo96

+0

Ich habe mir das angeschaut, aber ich kämpfe immer noch. Ich bin noch ziemlich neu in Java. Hast du ein Beispiel, wie das gemacht wird? – Kallendo96

+0

Hier ist ein Beispiel für [Kartendatenstruktur in Java] (https://examples.javacodegeeks.com/java-basics/java-map-example/). Ich hoffe, Sie haben ein gutes Java-Buch oder eine Website, auf die Sie sich beziehen oder von denen Sie lernen. Es wird ein langer und harter Weg, wenn Sie versuchen, durch das Posten von Fragen in SO oder anderen Foren zu lernen. – MikeC