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

theskullh3r0 -  
KX Messages postés 19031 Statut Modérateur -
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 19031 Statut Modérateur 3 020
 
Bonjour,

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