cs_gholiat
Messages postés4Date d'inscriptionjeudi 31 juillet 2008StatutMembreDernière intervention 1 août 2008
-
31 juil. 2008 à 20:57
cs_gholiat
Messages postés4Date d'inscriptionjeudi 31 juillet 2008StatutMembreDernière intervention 1 août 2008
-
1 août 2008 à 11:48
bonsoir, je voudrais s'il vous plait connaitre mon erreur dans le code suivant (je suis debutant en programation) :
***********************************************
public class Cripteur{
public static void main(String[] args) {
String str;
int j,i,k,s;
Lct lire=new Lct();
System.out.println ("Entrez le texte a cripté ^^ : ");
System.out.print ("-->");
str=lire.GetString();
str=str.replace(' ','7');
str=str.replace('b',' ');
str=str.replace('B',' ');
str=str.replace('o','8');
str=str.replace('O','8');
str=str.replace('s','1');
str=str.replace('S','1');
str=str.replace('f','1');
str=str.replace('F','1');
str=str.replace('r','1');
str=str.replace('R','1');
str=str.replace('a','1');
str=str.replace('A','1');
str=str.replace('l','1');
str=str.replace('L','1');
str=str.replace('h','1');
str=str.replace('H','1');
j=str.length();
char tab1[]=new char[j];
char tab2[]=new char[j];
for(i=0;i<j;i++);
{
tab1[i]=str.charAt(i);
}
for(k=0;k<j;k++)
{
for(s=(j-1);s>=0;s--)
{
tab2[s]=tab1[k];
}
}
for(i=0;i<j;i++)
{
str=str+tab2[i];
}
System.out.println ("Aprés criptage : ");
System.out.println (str);
}
}
***********************************************
quand je compile il n'ya pas d'erreur, mais a l'execution j'obtiend ce message:
*****************************************
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 2
at java.lang.String.charAt(String.java:687)
at Cripteur.main(Cripteur.java:41)
*****************************************
pour ce qui est de la class de lecture a partir du clavier la voila :
***************************************
import java.io.*;
public class Lct {
String str;
public String GetString()
{
try{
BufferedReader lecteur=new BufferedReader(new InputStreamReader(System.in));
str=(String)lecteur.readLine();
}
catch(IOException e)
{
System.err.println("Erreur "+e);
}
return str;
}
}
***********************************************
merci pour votre aide!^^
jiidou
Messages postés48Date d'inscriptionvendredi 31 août 2007StatutMembreDernière intervention12 février 2009 31 juil. 2008 à 23:51
salut
j'ai pas essayé de comprendre ton code;mais d'apres l'erreur affichée j'ai remarqué que tu essais d'affecter une valeur d'une index du tableau qui depasse la taille de ton tableau
tu dois remplacer la boucle :
for(i= 0;i<j;i++);
cs_gholiat
Messages postés4Date d'inscriptionjeudi 31 juillet 2008StatutMembreDernière intervention 1 août 2008 1 août 2008 à 00:10
merci beaucoup!! ^^ je voudrais encore posé une question car j'ai encore un probléme avec ce code:
**********************
for(k=0;k<j;k++)
{
for(s=(j-1);s>=0;s--)
{
tab2[s]=tab1[k];
}
}
***********************
normalement cette boucle est faite pour mettre les caractéres du tableau 1 dans le tableau 2 mais a partir de la fin, le probleme c'est que quand ça ne fonctionne pas....
encore merci .
cs_gholiat
Messages postés4Date d'inscriptionjeudi 31 juillet 2008StatutMembreDernière intervention 1 août 2008 1 août 2008 à 11:48
voila j'ai trouvé l'erreur, c'été la variable "str" que j'avais initialisé au debut comme j'entrais MP je m'attendais a avoir PM comme reponse mais j'oublié que j'avais initialisé la variable "str" par MP alors la reponse été MPPM, il ma suffie de créée une nouvel variable String et de l'utilisé au lieu de la premiere variable.
merci de m'avoir aidé.