JAVA : Découper un String

[Résolu/Fermé]
Signaler
Messages postés
3
Date d'inscription
dimanche 26 février 2012
Statut
Membre
Dernière intervention
27 février 2012
-
Messages postés
3
Date d'inscription
dimanche 26 février 2012
Statut
Membre
Dernière intervention
27 février 2012
-
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

Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 861
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
3
Date d'inscription
dimanche 26 février 2012
Statut
Membre
Dernière intervention
27 février 2012

Merci de la réponse, j'essaie ça tout de suite.
Messages postés
3
Date d'inscription
dimanche 26 février 2012
Statut
Membre
Dernière intervention
27 février 2012
>
Messages postés
3
Date d'inscription
dimanche 26 février 2012
Statut
Membre
Dernière intervention
27 février 2012

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.