JAVA : Découper un String

Résolu
Jeemys Messages postés 3 Statut Membre -  
Jeemys Messages postés 3 Statut Membre -
Bonjour,

Je fais un programme en JAVA et après de multiples tentatives, je suis encore bloqué à une étape depuis des heures.

Je veux découper une chaîne de caractères et l'insérer dans un tableau à 2 dimensions.
J'aimerais limiter mon nombre de colonnes à 6.

Un exemple :
Je prends donc la chaine de caractère "bonjour" et je l'insère dans mon tableau comme ceci.

[b][o][n][j][o][u]
[r] [] [] [] [] []

J'ai écris cela mais je n'obtiens pas le résultat escompté

public char[][] Permutation(String clair, char clef[])
	{
		int tailleCle = clef.length;   //tailleCle = 6
		int taille = (clair.length() / tailleCle) +1;  // taille = 5 ((27/6 = 4) + 1)
		lines = new char [taille][tailleCle];
				
		for (int i=0; i<lines.length; i++)
		{
		
			for (int j=0; j<clair.length(); j++)
			{
				char c = clair.charAt(j);
				lines[i][j] = c;
			}
		}
		
               return lines  
           }  


J'obtiens
[b][o][n][j][o][u]
[b][o][n][j][o][u]
[b][o][n][j][o][u]
....

Si vous pouviez m'aider svp.

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Il ne faut pas réfléchir par rapport à la sortie, mais par rapport à l'entrée.
    Ici tu as deux boucles for pour remplir les cases de ton tableau, alors qu'il suffirait d'une seule boucle qui parcourrait le mot d'entrée...

    public static char[][] permutation(String clair, char clef[])
    {
        int tailleClair = clair.length();
        int tailleCle = clef.length;
        
        int taille = tailleClair/tailleCle + ((tailleClair%tailleCle==0) ? 0 : 1);
        
        char[][] lines = new char[taille][tailleCle];
        
        for (int i=0; i<tailleClair; i++)
            lines[i/tailleCle][i%tailleCle] = clair.charAt(i);
        
        return lines;
    }
    La confiance n'exclut pas le contrôle
    1
    1. Jeemys Messages postés 3 Statut Membre
       
      Merci de la réponse, j'essaie ça tout de suite.
      0
      1. Jeemys Messages postés 3 Statut Membre > Jeemys Messages postés 3 Statut Membre
         
        Fonctionne nickel, merci beaucoup. J'ai passé toute la soirée d'hier à trouver une solution et finalement il fallait prendre le problème sous un autre angle.
        0