2016-12-13 1 views
0

J'essaie de créer un chiffrement simple en java qui remplace la valeur d'un tableau et le remplace par une valeur dans un autre tableau. L'un étant un nombre, et l'autre étant un alphabet.Un programme de chiffrement simple en java

Je suis très nouveau à Java, comme la semaine dernière nouvelle, et j'essaie toujours de comprendre les bases.La seule façon que j'ai compris pour faire cela serait de déclarer chaque valeur et son équivalent, est-il un moyen plus court de le faire sans ajouter 25 lignes de code inutiles? Je ne suis pas trop sûr de savoir où aller à partir d'ici. Toute aide serait grandement appréciée.

class simpleCypher { 

    String[] alpha; 
    String[] numo; 

    public static void main(String args[]) { 
    String[] numo = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", 
      "12", "13", "14", "15", "16", "17", "18", 
      "19", "20", "21", "22", "23", "24", "25", "26",}; 
    String[] alpha = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", 
      "l", "m", "n", "o", "p", "q", "r", 
      "s", "t", "u", "v", "w", "x", "y", "z", }; 

    numo[21] = alpha[21];  
    System.out.println(numo[21]); 


    } 
} 
+0

Faire un [boucle] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html), et utiliser la variable d'index comme indice pour les deux vos tableaux – BackSlash

+0

Notez que 'Cypher' est un langage de requête, vous vouliez probablement dire' cipher' (cryptage). –

+1

@GaborSzarnyas 'cypher' est une orthographe valide de la même chose, mais pas typiquement utilisée aux États-Unis. – pvg

Répondre

0

Si vous souhaitez associer chaque nombre à un caractère spécifique; par exemple chaque fois que le programme voit "1" il le remplace par "un", je dirais que vous devriez aller pour un HashMap. Un HashMap est une structure de données qui stocke deux choses une clé & une valeur. Chaque valeur est associée à une clé et HashMap mappe les clés uniques aux valeurs.

Le code serait comme suit:

class simpleCypher { 

private static HashMap<String, String> hMap = new HashMap<>(); 

public static void main(String[] args){ 
    hMap.put("1", "a"); 
    hMap.put("2", "b"); 
    hMap.put("3", "c"); 
    // continue adding ... 

    String[] numo = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", 
      "12", "13", "14", "15", "16", "17", "18", 
      "19", "20", "21", "22", "23", "24", "25", "26",}; 


    for (int i = 0; i<numo.length ; i++){ 
     numo[i] = hMap.get(numo[i]); 
     System.out.println(numo[i]); 
    } 
} 
} 
+1

merci beaucoup, je viens de l'essayer et ça a bien fonctionné. – Uzoezi

0

Je vous conseille d'utiliser une carte et appliquez votre logique de chiffrement pour chaque entrée. Quelque chose comme ça:

public static void main(String args []) { 
    Map<Integer, Integer > map = new HashMap<>(); 

    for (int i = 1; i <= 25; i ++){ 
     // do whatever you want in the logic 
     int cypher = i * i + 1; 
     map.put(i, cypher); 
    } 

    map.values().stream().forEach(cypher -> System.out.println(cypher)); 
    }