bensFouad
Messages postés39Date d'inscriptionlundi 16 avril 2007StatutMembreDernière intervention11 mai 2008
-
24 avril 2008 à 22:09
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 2016
-
24 avril 2008 à 23:34
Bonjour,
J’aurais
besoin d’un coup de main à mon problème :
J’ai un
tableau unidimensionnel qui contient trois valeurs redondantes, et j’aimerais
bien extraire chaque valeurs et le mettre dans un autre tableau,je m’explique :
String
tableau [] = {" nom ", "prenom ", "adresse " , // mon tableau principale
"nom1", " prenom1 ", "adresse1 " ;
"nom2 ", " prenom2 ", "adresse2 " ;…..
.......... " nomN ", " prenomN ", " adresseN " }
Mainteneant,
j’aimerais extraire les infotmations de ce tableau et les mettre dans trois autre tableaux : tab1, tab2 et tab3 tel que :
tab1 contient que les noms, tab2 contient que les prénoms et tab3 contient que les adresses.
Une idée? Merci d'avance.
A voir également:
Java tableau
Ajouter un element dans un tableau en java - Meilleures réponses
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 24 avril 2008 à 22:15
Salut:
String[] tableau = {...};
String[] firstNames = new String[tableau.length/3];
String[] lastNames = new String[tableau.length/3];
String[] addresses = new String[tableau.length/3];
for (int i = 0; i < tableau.length; ++i) {
if ((i%3) == 0) {
firstNames[i/3] = tableau[i];
} else if ((i%3) == 1) {
lastNames[i/3 + 1] = tableau[i];
} else {
addresses [i/3 + 2] = tableau[i];
}
}
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 24 avril 2008 à 22:31
On voit que tu débute car ça n'est pas vraiment un gros problème, je vais te proposer une solution sauf que je remplace
tes "tab1", "tab2" et "tab3" par des identifiants plus explicites, habitue-toi à faire ça. Ca rendra ton code plus lisible.
Possibilité :
int nbPersonnes = tableau.length / 3;
String[] noms = new String[nbPersonnes];
String[] prenoms = new String[nbPersonnes];
String[] adresses = new String[nbPersonnes];
Cependant, n'oublie pas non plus que Java est un langage à objets. Donc je ne sais pas ce que tu veux faire avec ces personnes, mais je te suggère de créer une class Personne :
Avec les objets :
public class Personne {
// attributs de ta classes (proprietes si tu veux)
String[] firstNames = new String[tableau.length/3];
String[] lastNames = new String[tableau.length/3];
String[] addresses = new String[tableau.length/3];
for (int i = 0; i < tableau.length; ++i) {
if ((i%3) == 0) {
firstNames[i/3] = tableau[i];
} else if ((i%3) == 1) {
lastNames[i/3 + 1] = tableau[i];
} else {
addresses [i/3 + 2] = tableau[i];
}
}
System.out.println(firstNames[0]);
System.out.println(firstNames[1]);
System.out.println(firstNames[2]);
System.out.println(lastNames[0]);
System.out.println(lastNames[1]);
System.out.println(lastNames[2]);
System.out.println(addresses[0]);
System.out.println(addresses[1]);
System.out.println(addresses[2]);
}
}
et j'ai l'erreur suivante:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at tests.TestTableau.main(TestTableau.java:24)
La ligne 24 : addresses [i/3 + 2] = tableau[i]; (je crois que ca donne toujours i >= 2, donc hors du tableau. )
bensFouad
Messages postés39Date d'inscriptionlundi 16 avril 2007StatutMembreDernière intervention11 mai 2008 24 avril 2008 à 22:50
Salut,
Merci jojolemariole pour ta réponse, j'avoue qu je ne suis pas un expert en java ni un débutant non plus, juste je ne suis pas à l'aise avec les tableaux, j'essaye toujours de trouver une solution avec les collections, les noms,les prenom que j'ai mis c'est juste au titre d'exemple , mais merci comme meme pour la class Personne.
bensFouad
Messages postés39Date d'inscriptionlundi 16 avril 2007StatutMembreDernière intervention11 mai 2008 24 avril 2008 à 23:04
Resalut jojolemariole,
ta methode ne marche pas :
int nbPersonnes = tableau.length / 3;
A cette ligne : noms[i] = tableau[3 * nbPersonnes]; (n'oubli pas q'un tableau commençe à 0 !!!!)
bensFouad
Messages postés39Date d'inscriptionlundi 16 avril 2007StatutMembreDernière intervention11 mai 2008 24 avril 2008 à 23:21
Désolé, mais ça marche pas non plus, ca retourne que le premier élément (nom, nom1,nom2),ca prouve que les tableau c'est pas facile parfois, je préfere la solution de "Ombitious_developper" qui est plus facile, Merci comme meme.