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; } }

Rispondi quotando