[Probleme Java'scool] Array required, but string found

Fermé
theskullh3r0 - 29 mai 2019 à 19:27
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 31 mai 2019 à 13:47
Bonjour,
Après avoir fait un premier programme de cryptage et décryptage César fonctionel j'essaie maintenant de faire la meme chose pour Vigenere seulement arrivé casiment au bout de mon programme je me retrouve face a un gros problème, je ne peux pas utiliser tableaux[n] ( parceque mon tableau est issu d'un string )
ni tableau.get(n) ou même stringNth(String s, int n) puisque je suis sur la proglet Txt code

voici mon code
void main() {
	resetConsole();
   char alphabet[] = {
      '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'}
  ;
   int v;
   String code = readString();
   int c;
   int x;
   int z;
   int u = code.length();
   openFileReader("PROJETVIGENERE.txt");
   x = 0;
   c = readNextCode();
   while (c !=-1) {
      x = x +1;
      c = readNextCode();
   }
   closeFileReader();
   println(x + " charactères dans le message");
   z=0;
   int cle[] = new int[x];
   int message[] = new int[x];
   for (int i =0; i < x;i++) 
   	{
   	
     	 char character = code.charAt(z);
      	v = (int)character;		// transforme le caractère en nombre
      	cle[i] = v;
      	println(v);
      	z= z+1;
   			if (z==u){
   				z=0;
  		 	}
   	}
   	openFileReader("PROJETVIGENERE.txt");
   for (int i =0; i < x; i ++) 
   	{ // cette boucle affiche le message
    		message[i] = readNextCode();
   		afficheCodeAuFormatCar(message[i]);
	}
	sautDeLigne();
	closeFileReader();
	openFileReader("PROJETVIGENERE.txt");
   for (int i =0; i < x; i ++) { // cette boucle affiche le code 
   afficheCodeAuFormatCar(cle[i]);
}
for (int i =0; i < x ; i ++) {	//cette bowcle affiche le message transformé ( on wtilise x-2 powr eviter d'avoir wn caractère spécial à la fin
    int r = message[i]+ code[i];
    message[i] = readNextCode();
   if (90 < r & message[i]+ code.get(i) <97) {
      code[i] = code[i] -26;
      afficheCodeAwFormatCar(message[i] + code[i]);
      println(message[i] + code[i]);
   } else 			//ELSE 1
   {
     if (message[i]+ code[i] >=97 & message[w]+ code[i] <=122) 
     {
      afficheCodeAwFormatCar(message[i]+ code[i]);
     } else 			//ELSE 2
     {

        if (message[i]+ code[i] > 122) 
        {
            code[i] = code[i] -26;
            afficheCodeAwFormatCar(message[i] + code[i]);
            println(message[i] + code[i]);
        } 
        else 			//ELSE 3
        {
          if (message[i] == 10) 
          {
               sawtDeLigne();
          }
            else{		
            	if (message[i] == 13) {
               	println("un sawt de ligne à été éffectwé");
               	} 
               	else {
               		if (message[i]== 32){
               		afficheCodeAwFormatCar(message[i]);
               		}
               		else{
               		afficheCodeAwFormatCar(message[i] + code[i]);
					println(message[i]+ code[i]);
					}
            		}
            	}
         }
      }
   }
}
}

Merci d'avance a tout ceux qui me donneront un coup de main
au revoir
Configuration: Windows / Firefox 67.0

1 réponse

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
31 mai 2019 à 13:47
Bonjour,

Remplaces tes
code[i]
et
code.get(i)
(qui n'existent pas) par
code.charAt(i)
qui renvoie un
char
.
0