Un petit problème dans mon prog JAVA

Fermé
beno-yac Messages postés 96 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 16 décembre 2020 - 13 mars 2012 à 20:07
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 23 mars 2012 à 14:48
Bonjour,
Je suis entrain d'essayer de réaliser un programme en JAVA qui va crypter un mot donné par l'utilisateur et en utilisant un tableau il va changé chaque lettre de ce mot la par la lettre qui le remplace "cryptage par substitution " par exemple l'utilisateur donne le mot "Utilisateur" on suppose que la lettre "U" doit être remplacer par la lettre "T" par exemple donc comme vous l'avez sans doute compris chaque lettre a une lettre qui la remplace donc j'ai penser a avoir deux tableau"claire" un avec les lettre alphabétique de A à Z et un autre tableau crypte qui contient a chaque place la lettre qu'il remplace donc dans le tableau claire la premier case c'est 'A' et dans la premier case du tableau crypte la lettre qui remplace le 'A' s'est 'K' donc crypte [1]='k'.
Mon problème est que je n'ai pas su comment parcourir le mot toute en modifiant ses lettres par les les lettre qui les remplacent .
j'ai déclaré le le mot de type String et les deux tableau String aussi je vous donne mon code pour que vous compreniez mieux merci de m'aider

ma classe main


import java.util.Scanner;
public class Info {
public static void main(String arays[]){
int input=0;


System.out.println("choisir la fonction a executer merci ");
System.out.println("Tapez 1 pour executer la fct de cryptage");
System.out.println("Tapez 2 pour executer la fct de decryptage");
Scanner sc= new Scanner(System.in);
input= sc.nextInt();

switch(input){
case 1:
System.out.println("donnez le mot a crypter merci ");
break;
case 2:
System.out.println("donnez le mot a décrypter merci ");
break;
}
}

}

et là c'set ma classe ou j'effectue les opérations de cryptage et de décryptage



public class crypt
{
private String[] cry={"K","D","L","W","T","Q","R","N","Z","C","S","B","P","H","O","X","J","M","U","I","A","V","G","F","E","Y"};
private String[] claire={"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"};
/*je fais passer le mot que l'utilisateur a donné dans le main grasse a la variable mot */

public String crypte(String mot)
{
String mot_crypte = "";

/*je parcours le mot donner par l'utilisateur puis j'effectue le changement de la lettre */
for (i=0; i<mot.length() ;i++)
{
for(int j;j<claire.length; j++)
{
if(mot.substring(i,i+1)==claire[j])
{
/*Mais là j'ai un petit probleme le compilateur m'ecrie erreur que je ne peut as mettre "mot[i]"donc je ne sais pas comment parcourire ma variable mot mot*/

mot[i]= cry[j];
}
}
}
/*Puis ici j'effectue le retour de la variable mot crypté pour pouvoir l'affiche */
return String.format();


}


}


Merci d'avance pour votre aide

A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 mars 2012 à 20:18
Déjà il ne faudrait pas oublier que minuscules et majuscules sont très différents.
Dans ton exemple "Utilisateur", le 'U' ne pourra pas être crypté car il est en majuscule alors que ton tableau en clair ne contient que des minuscules.
De plus si ce ne sont que des lettres, tu peux te contenter d'utiliser des char[], plutôt que des String[], ça te simplifierai la vie, en particulier utiliser charAt au lieu de substring, ce qui donnerait plus de sens à l'opérateur == qui est faux pour des String.
0
beno-yac Messages postés 96 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 16 décembre 2020
13 mars 2012 à 21:04
Merci pour votre remarque KX ,
oui je sais c'est juste quand j'ai écrie l'exemple oui mais moi le problème je n'ai pas su comment faire ou comment me déplacer dans la variable " mot ".
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 13/03/2012 à 21:10
Et bien avec des charAt comme j'ai dit tout à l'heure, ce sera le plus simple.

if (mot.charAt(i)==clair[j]) // char[] clair;
0
beno-yac Messages postés 96 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 16 décembre 2020
13 mars 2012 à 22:29
Ok merci je vais essayer et je vous rends la repense
0
beno-yac Messages postés 96 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 16 décembre 2020
13 mars 2012 à 22:52
ll faudra que je déclare la variable "mot" comme un tableau de
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 mars 2012 à 23:06
mot est un String et c'est très bien comme ça. D'ailleurs si tu comprends comment marche charAt, il serait même mieux de mettre clair et cry String également...
0