JAVA : Découper un String
Résolu
Jeemys
Messages postés
3
Statut
Membre
-
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é
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.
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
-
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