Un petit problème dans mon prog JAVA
beno-yac
Messages postés
96
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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
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:
- Un petit problème dans mon prog JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
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.
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.
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 ".