Salve gente!!! mi servirebbe il vostro aiuto.Ho creato una piccola classe che inplementa l'algoritmo di criptografia di Vigenere.Ma ho dei problemi già nel metodo di criptografia e nello specifico nell'istruzione " res[x]=' '; " ho un ArrayIndexOfBoundsException: -52 . sareste così gentili da correggere eventuali errori. grazie per il vostro aiuto. p.s so che il codice è una ciofeca ma al momento punto alla sua funzionalità dopo ci sarà tempo per renderlo più "simpatico"
codice:
class Vigenere { 
             private String testo; 
             private String chiave; 
             char alfabeto[]= {'a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
                 Vigenere(String chi){ 
                     chiave=chi; } 
                 public String Cripta(String str) { 
                   testo=str.toLowerCase(); 
                   char[] res=testo.toCharArray(); 
                   chiave=chiave.toLowerCase(); 
                   String criptata=""; 
                   char[] testo1=testo.toCharArray(); 
                   char[] chiave1=chiave.toCharArray(); 
                   for(int x=0;x<testo.length();x++){ 
                     if(testo.charAt(x)==' '){ 
                       res[x]=' ';
                        } 
                        if(testo.charAt(x)!=' '){ 
                          int i=0; int xx=((((int)testo1[x])-97)+((((int)chiave1[i])-97)%26)); 
                          i = (i + 1) % chiave.length(); 
                          if(xx>25){ 
                            xx=xx-25; } 
                             res[x]=alfabeto[xx]; 
                         } 
                    } for (int y = 0; y < testo.length(); y++){ 
                         criptata+=((Character)res[y]); } return criptata; 
                        } 
                        public String Decripta(String str){ 
                          String lung=str; 
                          int i=0; 
                          chiave=chiave.toLowerCase(); 
                          char[] chiave1=testo.toCharArray(); 
                          char[] dec=str.toCharArray(); 
                          String send=""; 
                          for(int h=0;h<lung.length();h++){ 
                            if(dec[h]==' '){ 
                              send+=" "; 
                             } 
                              int xx=((((int)dec[h])-97)-((((int)chiave1[h])-97)%26)); 
                               i = (i + 1) % chiave.length(); 
                               send+=((Character)alfabeto[xx]); 
                            } return send; 
                          } 
}