Java, problème de chiffre

Bonjour, j'ai créé un code qui remplace les caractères par des chiffres selon leurs place dans l'alphabet, cependant, j'ai un petit problème lors de l'exécution du programme. voici mon code :
//déclaration de l'alphabet
			String 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 i;
			int j=0;
			int comparaison=1;
			//comparaison et toutes les variables pour la lectur des caractère de la textBox
		
			char caraclu[]=new char[1];
			String str=new String(caraclu);
			
			//boucle for pour la lecture des caractères
			for(i=0;i<texteEntré.length();i++){
				caraclu[0]=texteEntré.charAt(i);
				
				if(Character.isLetter(caraclu[0])){
					comparaison=str.compareToIgnoreCase(alphabet[0]);
					if(!(comparaison==0)){
						while(!(comparaison==0)&&j<alphabet.length-1){
							j++;
							comparaison=str.compareToIgnoreCase(alphabet[j]);
						}
						if (comparaison>0){
							j=25+comparaison;
						}
						else if(comparaison<0){
							j=25-2*comparaison;
						}
						else{
							j=j;
							
						}
					}
				}
				else if(Character.isSpaceChar(caraclu[0])||Character.isWhitespace(caraclu[0])){
					j=27;
				}
				else if(Character.isDigit(caraclu[0])){
					
					 
			         
					j=28+caraclu[0];
				}
				textecodé=textecodé+" "+j;
				
			}


je désire crypter "entrer le texte à crypter" (à titre d'essaie) et j'obtient :

 269 219 219 219 219 219 27 219 219 27 219 219 219 219 219 27 219 27 219 219 219 219 219 219 219
Configuration: Windows Vista
Firefox 3.0.1

8 réponses

  1. Bonjour,
    Je n'ai pas très bien compris est-ce-que c'est ça que tu veut faire:

    		String[] 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[] chiffre = new int[26];
    		
    		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    		String entrer = null;
    		
    		System.out.println("Entrer une lettre de l'alphabet et appuis sur entrer :");
    		try {
    			entrer = (String)in.readLine();
    		} catch (IOException e) {
    		}
    
    		for (int nb = 0; nb < 26; nb++) {
    			chiffre[nb] = nb + 1;
    			if (entrer.equals(alphabet[nb])) {
    				System.out.println(chiffre[nb]);
    			}
    		}
    0
    1. lol, j'ai une iterface graphique avec des Jtextarea, donc pas de println.
      ensuite, si tu fais "equals" je crois qu'il te retournera une erreur si ta lettre est une maj.
      en fait mon algorithme récupère un texte écrit dans un texte area. puis caractère par caractère, il va les cripter en nombre, les espaces auront leur caractère, les chiffre aussi... or là, lorsque je crypte le texte "entrer le texte à crypter" il me met des chiffres avec centaine, ce qui est impossible, surtout qu'il les répète.

      je viens de penser, estce que par exemple la concaténation "un s'écrit "+1+"en chiffre" donne "un s'écrit 1 en chiffre"? ça pourait être ça le bu non?
      0
      1. Donc tu veut faire un truc du genre ça :

        JFrame f = new JFrame();
        
        		final JTextField entrer = new JTextField(10);
        		final JTextField sortie = new JTextField(10);
        		JButton b = new JButton("OK");
        
        		JPanel p = new JPanel();
        		p.add(entrer);
        		p.add(sortie);
        		b.addActionListener(new ActionListener() {
        			public void actionPerformed(ActionEvent e) {
        				sortie.setText("");
        				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' };
        				char[] alphabetMaj = { '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[] chiffre = new int[26];
        
        				for (int text = 0; text < entrer.getText().length(); text++) {
        					for (int nb = 0; nb < 26; nb++) {
        						chiffre[nb] = nb + 1;
        						if (entrer.getText().charAt(text) == alphabet[nb] || entrer.getText().charAt(text) == alphabetMaj[nb]) {
        							sortie.setText(sortie.getText() + chiffre[nb]+" ");
        						}
        					}
        				}
        			}
        		});
        		p.add(b);
        		f.add(p);
        
        		f.pack();
        		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        		f.setVisible(true);
        


        Dans le 1er TextField tu met les lettres et dans le 2ème quand tu appuis sur OK il y a les nombres qui correspondent aux lettres.

        Désoler je n'ai rien compris à la dernière phrase, je viens de commencer le java il n'y a pas longtemps...
        0
        1. oui en quelque sorte. tu veux que je te passe le code des deux classes?

          classe cryptographie, avec l'interface

          import javax.swing.*;
          
          
          import java.awt.GridLayout;
          import javax.swing.BoxLayout;
          import java.awt.BorderLayout;
          import java.awt.FlowLayout;
          
          
          
          public class Cryptographie {
          	//un paneau avec une présentation en Bordeur Layout
          JPanel presentationGeneral = new JPanel();
          BorderLayout dispositionGeneral = new BorderLayout();
          //le panneau stats qui s'afficheront en ligne
          JPanel PresentationStatistiques = new JPanel();
          FlowLayout DispStat = new FlowLayout();
          //Le panneau avec les champs text et les outils de cryptage
          JPanel OutilsCryptage = new JPanel();
          BoxLayout DispOutils = new BoxLayout(OutilsCryptage,  BoxLayout.Y_AXIS);
          
          
          
          
          //Le panneau avec le choix des methodes
          JPanel Methodes =new JPanel();
          GridLayout dispMet = new GridLayout(4,1);
          
          //les composants (les radio, les champs text, les label)
          JLabel statistiques = new JLabel("Statistiques : ");
          JLabel nbMots = new JLabel("Nombre de mots :");
          JLabel nbCar = new JLabel("Nombre de caractères : ");
          JRadioButton MetCesar = new JRadioButton("Méthode des clefs de César");
          JRadioButton MetCarré = new JRadioButton("Méthode des carré parfaits");
          JRadioButton MetInverse = new JRadioButton("Méthode d'inversion du texte");
          JRadioButton MetAlphaNum = new JRadioButton("Méthode de remplacement lettre par chiffres");
          ButtonGroup Groupe = new ButtonGroup();
          JTextArea texteDonné = new JTextArea("entrer le texte à crypter",10,60);
          JTextArea texteCrypté = new JTextArea(10,60);
          JButton Cryptage = new JButton("Crypter le texte");
          
          Cryptographie() {
          	presentationGeneral.setLayout(dispositionGeneral);
          	//les stats
          	PresentationStatistiques.setLayout(DispStat);
          	PresentationStatistiques.add(statistiques);
          	PresentationStatistiques.add(nbMots);
          	PresentationStatistiques.add(nbCar);
          	//Les boutons
          	Groupe.add(MetCesar);
          	Groupe.add(MetCarré);
          	Groupe.add(MetAlphaNum);
          	Groupe.add(MetInverse);
          	//choix des methodes
          	Methodes.setLayout(dispMet);
          	Methodes.add(MetCesar);
          	Methodes.add(MetCarré);
          	Methodes.add(MetInverse);
          	Methodes.add(MetAlphaNum);
          	//l'interface de cryptage
          	
          	
          	OutilsCryptage.setLayout(DispOutils);
          	OutilsCryptage.add(texteDonné);
          	texteDonné.setLineWrap(true);
          	OutilsCryptage.add(Cryptage);
          	OutilsCryptage.add(texteCrypté);
          	texteCrypté.setLineWrap(true);
          	//intégration des panels
          	presentationGeneral.add("West", Methodes);
          	presentationGeneral.add("North", PresentationStatistiques);
          	presentationGeneral.add("Center", OutilsCryptage);
          	
          	// Crée le cadre et lui affecte son contenu
              JFrame frame = new JFrame("Cryptage de texte");
              frame.setContentPane(presentationGeneral);
          	
              // Affecte à la fenêtre des dimensions suffisantes pour	  
              // prendre en compte tous les contrôles
              frame.pack(); 
          	    
              // Affiche la fenêtre
              frame.setVisible(true);
          	
          MoteurCrypto crypteur = new MoteurCrypto(this);
          
          Cryptage.addActionListener(crypteur);
          
          }
          public static void main(String[] args) {
          	   // Instancie la classe Calculatrice
          	   Cryptographie crypto = new Cryptographie();
          	  }
          }
          


          classe moteur crypto avec les outils de crypto graphie

          import java.awt.event.ActionEvent;
          import java.awt.event.ActionListener;
          
          
          import javax.swing.JButton;
          
          
          public class MoteurCrypto implements ActionListener {
          	Cryptographie parent;
          	
          MoteurCrypto(Cryptographie parent){
          	this.parent = parent;
          	
          }
          public void actionPerformed(ActionEvent événement) {
          	String texteEntré = parent.texteDonné.getText();
          	String textecodé="";
          	int nbMot;
          	int nbChar;
          	String StatCar="Nombre de caractères : ";
          	String StatMot="Nombre de mots : ";
          	
          	
          	
          	JButton boutonCliqué = (JButton) événement.getSource();
          	if (boutonCliqué==parent.Cryptage){
          		//les stats
          		int index;
          		nbChar = texteEntré.length();
          		parent.nbCar.setText(StatCar+nbChar);
          		char carprecédent[]=new char[1];
          		texteEntré.getChars(1, 2, carprecédent, 0);
          		char carlu[]=new char[1];
          		nbMot=1;
          		
          		index=2;
          		
          		while(index<texteEntré.length()){
          			texteEntré.getChars(index, index+1, carlu, 0);
          			if(carprecédent[0]==' '){
          
          				nbMot++;
          				carprecédent=carlu;
          			}
          			else{
          			carprecédent=carlu;
          			}
          			index+=1;
          			
          		}
          		parent.nbMots.setText(StatMot+nbMot);
          		
          		
          		//le codage
          		if(parent.MetAlphaNum.isSelected()){
          			//déclaration de l'alphabet
          			String 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 i;
          			int j=0;
          			int comparaison=1;
          			//comparaison et toutes les variables pour la lectur des caractère de la textBox
          		
          			char caraclu[]=new char[1];
          			String str=new String(caraclu);
          			
          			//boucle for pour la lecture des caractères
          			for(i=0;i<texteEntré.length();i++){
          				caraclu[0]=texteEntré.charAt(i);
          				
          				if(Character.isLetter(caraclu[0])){
          					comparaison=str.compareToIgnoreCase(alphabet[0]);
          					if(!(comparaison==0)){
          						while(!(comparaison==0)&&j<alphabet.length-1){
          							j++;
          							comparaison=str.compareToIgnoreCase(alphabet[j]);
          						}
          						if (comparaison>0){
          							j=25+comparaison;
          						}
          						else if(comparaison<0){
          							j=25-2*comparaison;
          						}
          						else{
          							j=j;
          							
          						}
          					}
          				}
          				else if(Character.isSpaceChar(caraclu[0])||Character.isWhitespace(caraclu[0])){
          					j=27;
          				}
          				else if(Character.isDigit(caraclu[0])){
          					
          					 
          			         
          					j=28+caraclu[0];
          				}
          				textecodé=textecodé+" "+j;
          				
          			}
          			parent.texteCrypté.setText(textecodé);
          			
          			}
          		else if(parent.MetInverse.isSelected()){
          			int inverse;
          			char mid[]=new char[1];
          			for(inverse=0;inverse<texteEntré.length();inverse++){
          				texteEntré.getChars(inverse, inverse+1, mid,0);
          				textecodé = mid[0]+textecodé;
          				parent.texteCrypté.setText(textecodé);
          			}
          			
          		}
          		else if(parent.MetCesar.isSelected()){
          			
          			}
          			
          			
          		
          				
          				
          				
          				
          			}
          		}
          		else if(parent.MetCarré.isSelected()){
          			int racineEnt=0;
          			double racineCarré;
          			double lengt=texteEntré.length();
          			racineCarré=Math.sqrt(lengt);
          			char carré;
          			while (racineEnt<racineCarré){
          				racineEnt++;
          			}
          			int lettre;
          			int groupe;
          			//si la racineCarré est enière alors exécuter la boucle sans caractère supplémentaires
          			if(racineCarré==racineEnt){
          				
          				
          				for(lettre=0;lettre<racineEnt;lettre++){
          					for(groupe=lettre;groupe<lengt;groupe+=racineEnt){
          					carré=texteEntré.charAt(groupe);
          					textecodé=textecodé+carré;}
          					
          				}
          			
          				parent.texteCrypté.setText(textecodé);
          			}
          			else if(racineEnt>racineCarré){
          				while(texteEntré.length()<racineEnt*racineEnt){
          					texteEntré=texteEntré+" ";
          				}
          				int longueur=texteEntré.length();
          				for(lettre=0;lettre<racineEnt;lettre++){
          					for(groupe=lettre;groupe<longueur;groupe+=racineEnt){
          					carré=texteEntré.charAt(groupe);
          					textecodé=textecodé+carré;}
          					
          				}
          				parent.texteCrypté.setText(textecodé);
          			}
          		}
          		
          	}
          }
          
          }
          
          0
          1. fais ça :

            MoteurCrypto.java :
            import java.awt.event.ActionEvent;
            import java.awt.event.ActionListener;
            
            import javax.swing.JButton;
            
            public class MoteurCrypto implements ActionListener {
            	Cryptographie parent;
            
            	MoteurCrypto(Cryptographie parent) {
            		this.parent = parent;
            
            	}
            
            	public void actionPerformed(ActionEvent événement) {
            		String texteEntré = parent.texteDonné.getText();
            		String textecodé = "";
            		int nbMot;
            		int nbChar;
            		String StatCar = "Nombre de caractères : ";
            		String StatMot = "Nombre de mots : ";
            
            		JButton boutonCliqué = (JButton) événement.getSource();
            		if (boutonCliqué == parent.Cryptage) {
            			// les stats
            			int index;
            			nbChar = texteEntré.length();
            			parent.nbCar.setText(StatCar + nbChar);
            			char carprecédent[] = new char[1];
            			char carlu[] = new char[1];
            			nbMot = 1;
            
            			index = 2;
            
            			while (index < texteEntré.length()) {
            				texteEntré.getChars(index, index + 1, carlu, 0);
            				if (carprecédent[0] == ' ') {
            
            					nbMot++;
            					carprecédent = carlu;
            				} else {
            					carprecédent = carlu;
            				}
            				index += 1;
            
            			}
            			parent.nbMots.setText(StatMot + nbMot);
            
            			// le codage
            			if (parent.MetAlphaNum.isSelected()) {
            				parent.texteCrypté.setText("");
            				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' };
            				char[] alphabetMaj = { '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[] chiffre = new int[26];
            
            				for (int text = 0; text < parent.texteDonné.getText().length(); text++) {
            					for (int nb = 0; nb < 26; nb++) {
            						chiffre[nb] = nb + 1;
            						if (parent.texteDonné.getText().charAt(text) == alphabet[nb] || parent.texteDonné.getText().charAt(text) == alphabetMaj[nb]) {
            							parent.texteCrypté.setText(parent.texteCrypté.getText() + chiffre[nb] + " ");
            						}
            					}
            				}
            
            			} else if (parent.MetInverse.isSelected()) {
            				int inverse;
            				char mid[] = new char[1];
            				for (inverse = 0; inverse < texteEntré.length(); inverse++) {
            					texteEntré.getChars(inverse, inverse + 1, mid, 0);
            					textecodé = mid[0] + textecodé;
            					parent.texteCrypté.setText(textecodé);
            				}
            
            			} else if (parent.MetCarré.isSelected()) {
            				int racineEnt = 0;
            				double racineCarré;
            				double lengt = texteEntré.length();
            				racineCarré = Math.sqrt(lengt);
            				char carré;
            				while (racineEnt < racineCarré) {
            					racineEnt++;
            				}
            				int lettre;
            				int groupe;
            				// si la racineCarré est enière alors exécuter la boucle sans
            				// caractère supplémentaires
            				if (racineCarré == racineEnt) {
            
            					for (lettre = 0; lettre < racineEnt; lettre++) {
            						for (groupe = lettre; groupe < lengt; groupe += racineEnt) {
            							carré = texteEntré.charAt(groupe);
            							textecodé = textecodé + carré;
            						}
            
            					}
            
            					parent.texteCrypté.setText(textecodé);
            				} else if (racineEnt > racineCarré) {
            					while (texteEntré.length() < racineEnt * racineEnt) {
            						texteEntré = texteEntré + " ";
            					}
            					int longueur = texteEntré.length();
            					for (lettre = 0; lettre < racineEnt; lettre++) {
            						for (groupe = lettre; groupe < longueur; groupe += racineEnt) {
            							carré = texteEntré.charAt(groupe);
            							textecodé = textecodé + carré;
            						}
            
            					}
            					parent.texteCrypté.setText(textecodé);
            				}
            			}
            		}
            	}
            }
            
            0
            1. mon code fait la même chose que le tient, je regarde ce que donne le tient, mais bon...
              j'ai regardé, ton code marche, mais il ne met pas les espace, et le "à" est codé par un "5" alors que ce doit être un 1 (ou un 27...)
              0
              1. Et là c'est bon ?

                import java.awt.event.ActionEvent;
                import java.awt.event.ActionListener;
                
                import javax.swing.JButton;
                
                public class MoteurCrypto implements ActionListener {
                	Cryptographie parent;
                
                	MoteurCrypto(Cryptographie parent) {
                		this.parent = parent;
                
                	}
                
                	public void actionPerformed(ActionEvent événement) {
                		String texteEntré = parent.texteDonné.getText();
                		String textecodé = "";
                		int nbMot;
                		int nbChar;
                		String StatCar = "Nombre de caractères : ";
                		String StatMot = "Nombre de mots : ";
                
                		JButton boutonCliqué = (JButton) événement.getSource();
                		if (boutonCliqué == parent.Cryptage) {
                			// les stats
                			int index;
                			nbChar = texteEntré.length();
                			parent.nbCar.setText(StatCar + nbChar);
                			char carprecédent[] = new char[1];
                			char carlu[] = new char[1];
                			nbMot = 1;
                
                			index = 2;
                
                			while (index < texteEntré.length()) {
                				texteEntré.getChars(index, index + 1, carlu, 0);
                				if (carprecédent[0] == ' ') {
                
                					nbMot++;
                					carprecédent = carlu;
                				} else {
                					carprecédent = carlu;
                				}
                				index += 1;
                
                			}
                			parent.nbMots.setText(StatMot + nbMot);
                
                			// le codage
                			if (parent.MetAlphaNum.isSelected()) {
                				parent.texteCrypté.setText("");
                				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', 'à' };
                				char[] alphabetMaj = { '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[] chiffre = new int[26];
                
                				for (int text = 0; text < parent.texteDonné.getText().length(); text++) {
                					if (parent.texteDonné.getText().charAt(text) == 'à') {
                						parent.texteCrypté.setText(parent.texteCrypté.getText() + '1' + "/");
                					} else if (parent.texteDonné.getText().charAt(text) == 'é' || parent.texteDonné.getText().charAt(text) == 'è') {
                						parent.texteCrypté.setText(parent.texteCrypté.getText() + '5' + "/");
                					} else if (parent.texteDonné.getText().charAt(text) == 'ç') {
                						parent.texteCrypté.setText(parent.texteCrypté.getText() + '3' + "/");
                					}else if (parent.texteDonné.getText().charAt(text) == 'ù') {
                						parent.texteCrypté.setText(parent.texteCrypté.getText() + "21" + "/");
                					}else if (parent.texteDonné.getText().charAt(text) == ' ') {
                						parent.texteCrypté.setText(parent.texteCrypté.getText() + ' ' + "/");
                					}
                					for (int nb = 0; nb < 26; nb++) {
                						chiffre[nb] = nb + 1;
                						if (parent.texteDonné.getText().charAt(text) == alphabet[nb] || parent.texteDonné.getText().charAt(text) == alphabetMaj[nb]) {
                							parent.texteCrypté.setText(parent.texteCrypté.getText() + chiffre[nb] + " ");
                						}
                					}
                				}
                
                			} else if (parent.MetInverse.isSelected()) {
                				int inverse;
                				char mid[] = new char[1];
                				for (inverse = 0; inverse < texteEntré.length(); inverse++) {
                					texteEntré.getChars(inverse, inverse + 1, mid, 0);
                					textecodé = mid[0] + textecodé;
                					parent.texteCrypté.setText(textecodé);
                				}
                
                			} else if (parent.MetCarré.isSelected()) {
                				int racineEnt = 0;
                				double racineCarré;
                				double lengt = texteEntré.length();
                				racineCarré = Math.sqrt(lengt);
                				char carré;
                				while (racineEnt < racineCarré) {
                					racineEnt++;
                				}
                				int lettre;
                				int groupe;
                				// si la racineCarré est enière alors exécuter la boucle sans
                				// caractère supplémentaires
                				if (racineCarré == racineEnt) {
                
                					for (lettre = 0; lettre < racineEnt; lettre++) {
                						for (groupe = lettre; groupe < lengt; groupe += racineEnt) {
                							carré = texteEntré.charAt(groupe);
                							textecodé = textecodé + carré;
                						}
                
                					}
                
                					parent.texteCrypté.setText(textecodé);
                				} else if (racineEnt > racineCarré) {
                					while (texteEntré.length() < racineEnt * racineEnt) {
                						texteEntré = texteEntré + " ";
                					}
                					int longueur = texteEntré.length();
                					for (lettre = 0; lettre < racineEnt; lettre++) {
                						for (groupe = lettre; groupe < longueur; groupe += racineEnt) {
                							carré = texteEntré.charAt(groupe);
                							textecodé = textecodé + carré;
                						}
                
                					}
                					parent.texteCrypté.setText(textecodé);
                				}
                			}
                		}
                	}
                }
                
                0
                1. C'est bon là :

                  import java.awt.event.ActionEvent;
                  import java.awt.event.ActionListener;
                  
                  import javax.swing.JButton;
                  
                  public class MoteurCrypto implements ActionListener {
                  	Cryptographie parent;
                  
                  	MoteurCrypto(Cryptographie parent) {
                  		this.parent = parent;
                  
                  	}
                  
                  	public void actionPerformed(ActionEvent événement) {
                  		String texteEntré = parent.texteDonné.getText();
                  		String textecodé = "";
                  		int nbMot;
                  		int nbChar;
                  		String StatCar = "Nombre de caractères : ";
                  		String StatMot = "Nombre de mots : ";
                  
                  		JButton boutonCliqué = (JButton) événement.getSource();
                  		if (boutonCliqué == parent.Cryptage) {
                  			// les stats
                  			int index;
                  			nbChar = texteEntré.length();
                  			parent.nbCar.setText(StatCar + nbChar);
                  			char carprecédent[] = new char[1];
                  			char carlu[] = new char[1];
                  			nbMot = 1;
                  
                  			index = 2;
                  
                  			while (index < texteEntré.length()) {
                  				texteEntré.getChars(index, index + 1, carlu, 0);
                  				if (carprecédent[0] == ' ') {
                  
                  					nbMot++;
                  					carprecédent = carlu;
                  				} else {
                  					carprecédent = carlu;
                  				}
                  				index += 1;
                  
                  			}
                  			parent.nbMots.setText(StatMot + nbMot);
                  
                  			// le codage
                  			if (parent.MetAlphaNum.isSelected()) {
                  				parent.texteCrypté.setText("");
                  				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', 'à' };
                  				char[] alphabetMaj = { '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[] chiffre = new int[26];
                  
                  				for (int text = 0; text < parent.texteDonné.getText().length(); text++) {
                  					if (parent.texteDonné.getText().charAt(text) == 'à') {
                  						parent.texteCrypté.setText(parent.texteCrypté.getText() + '1' + " ");
                  					} else if (parent.texteDonné.getText().charAt(text) == 'é' || parent.texteDonné.getText().charAt(text) == 'è') {
                  						parent.texteCrypté.setText(parent.texteCrypté.getText() + '5' + " ");
                  					} else if (parent.texteDonné.getText().charAt(text) == 'ç') {
                  						parent.texteCrypté.setText(parent.texteCrypté.getText() + '3' + " ");
                  					} else if (parent.texteDonné.getText().charAt(text) == 'ù') {
                  						parent.texteCrypté.setText(parent.texteCrypté.getText() + "21" + " ");
                  					} else if (parent.texteDonné.getText().charAt(text) == ' ') {
                  						parent.texteCrypté.setText(parent.texteCrypté.getText() + ' ' + " ");
                  					}
                  					for (int nb = 0; nb < 26; nb++) {
                  						chiffre[nb] = nb + 1;
                  						if (parent.texteDonné.getText().charAt(text) == alphabet[nb] || parent.texteDonné.getText().charAt(text) == alphabetMaj[nb]) {
                  							parent.texteCrypté.setText(parent.texteCrypté.getText() + chiffre[nb] + " ");
                  						}
                  					}
                  				}
                  
                  			} else if (parent.MetInverse.isSelected()) {
                  				int inverse;
                  				char mid[] = new char[1];
                  				for (inverse = 0; inverse < texteEntré.length(); inverse++) {
                  					texteEntré.getChars(inverse, inverse + 1, mid, 0);
                  					textecodé = mid[0] + textecodé;
                  					parent.texteCrypté.setText(textecodé);
                  				}
                  
                  			} else if (parent.MetCarré.isSelected()) {
                  				int racineEnt = 0;
                  				double racineCarré;
                  				double lengt = texteEntré.length();
                  				racineCarré = Math.sqrt(lengt);
                  				char carré;
                  				while (racineEnt < racineCarré) {
                  					racineEnt++;
                  				}
                  				int lettre;
                  				int groupe;
                  				// si la racineCarré est enière alors exécuter la boucle sans
                  				// caractère supplémentaires
                  				if (racineCarré == racineEnt) {
                  
                  					for (lettre = 0; lettre < racineEnt; lettre++) {
                  						for (groupe = lettre; groupe < lengt; groupe += racineEnt) {
                  							carré = texteEntré.charAt(groupe);
                  							textecodé = textecodé + carré;
                  						}
                  
                  					}
                  
                  					parent.texteCrypté.setText(textecodé);
                  				} else if (racineEnt > racineCarré) {
                  					while (texteEntré.length() < racineEnt * racineEnt) {
                  						texteEntré = texteEntré + " ";
                  					}
                  					int longueur = texteEntré.length();
                  					for (lettre = 0; lettre < racineEnt; lettre++) {
                  						for (groupe = lettre; groupe < longueur; groupe += racineEnt) {
                  							carré = texteEntré.charAt(groupe);
                  							textecodé = textecodé + carré;
                  						}
                  
                  					}
                  					parent.texteCrypté.setText(textecodé);
                  				}
                  			}
                  		}
                  	}
                  }
                  
                  0