Bonjour,
bonjour
j'ai écrit ce programme
le but de mon programme est:
cryptographie par une substitution aléatoire,on utilise un alphabet-clé, dans lequel les lettres se succèdent de manière désordonnée;
exemple:
HYLUJPVREAKBNDOFSQZCWMGITX
A deviendront H, B deviendront Y etc...
la clé sera saisi par l'utilisateur
lors de compilations j'ai un message suivantes:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -71
at java.lang.String.substring(Unknown Source)
at Divers4.main(Divers4.java:23)
quelqu'un peut m'aider svp
import java.util.Scanner; public class Divers4 { public static void main(String[] args) { String bla,code; int i,decal; System.out.println("Entrez la phrase à coder:"); Scanner sc=new Scanner(System.in); bla=sc.nextLine(); System.out.println("Entrez l'alphabet clé:"); char cle=sc.next().charAt(0); String alpha="abcdefghijklmnopqrstuvwxyz"; code=""; for(i=1;i<bla.length();i++) { String let=bla.substring(i,1); boolean pos=alpha.contains(bla); code = bla.substring(cle,i); } bla=code; System.out.println("La phrase codée est:"+bla); } }
A voir également:
Exception in thread "main" String index out of range: -71
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 20243 015 1 août 2015 à 10:38
Commences par relire ton code, tu fais n'importe quoi...
String let=bla.substring(i,1); // ne sert à rien, tu n'utilises jamais let
boolean pos=alpha.contains(bla);// ne sert à rien, tu n'utilises jamais pos
code = bla.substring(cle,i); // substring prends des entiers en paramètre, pas des char
1 août 2015 à 10:38