Probleme avec des Tableaux en JAVA
Résolu/Fermé
MegaBob
Messages postés
27
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
19 octobre 2008
-
12 juin 2008 à 23:27
MegaBob Messages postés 27 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 19 octobre 2008 - 14 juin 2008 à 11:41
MegaBob Messages postés 27 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 19 octobre 2008 - 14 juin 2008 à 11:41
A voir également:
- Probleme avec des Tableaux en JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java itel football - Télécharger - Jeux vidéo
- Tableaux croisés dynamiques - Guide
- Jeux java itel 5360 - Forum Mobile
8 réponses
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
328
13 juin 2008 à 00:03
13 juin 2008 à 00:03
Bonsoir,
Pour compléter ce qu'à dit Hamza_bba, il faut initialiser ton tableau à autre chose que nul (c'est pas un NullPointerException ton erreur par hasard) ?
Cordialement,
String[] tab = new String[5]; for(int i = 0; i < 5; i++) { tab[i] = rcClient[i+1]; }
Pour compléter ce qu'à dit Hamza_bba, il faut initialiser ton tableau à autre chose que nul (c'est pas un NullPointerException ton erreur par hasard) ?
Cordialement,
salut
vous avez fait qlq erreur :
1- il faut faire une boucle ( il ne sufit pas une condition) en fait remplacer le if par le while
2- tu n'a pas besoin de variable j remplacer Rclient[j] par Rclient[i]
bonne continuation
vous avez fait qlq erreur :
1- il faut faire une boucle ( il ne sufit pas une condition) en fait remplacer le if par le while
2- tu n'a pas besoin de variable j remplacer Rclient[j] par Rclient[i]
bonne continuation
MegaBob
Messages postés
27
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
19 octobre 2008
2
13 juin 2008 à 00:47
13 juin 2008 à 00:47
Merci de vos réponses je vais essayer cela.
J'ai besoin de 2Compteurs i et j car les valeurs dans Tab[0] doivent être celle de RClient[1].
J'ai besoin de 2Compteurs i et j car les valeurs dans Tab[0] doivent être celle de RClient[1].
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
328
13 juin 2008 à 00:50
13 juin 2008 à 00:50
Si tu as un décallage constant (tab[0] = rClient[1], tab[1]=rClient[2]...), une seule variable suffit (voir le code que je t'ai montré).
Sinon un petit if peut aussi t'éviter d'utiliser une variable inutile (si seul le comportement de la première cellule de ton tableau est différent).
Enfin, c'est à toi de voir...
Sinon un petit if peut aussi t'éviter d'utiliser une variable inutile (si seul le comportement de la première cellule de ton tableau est différent).
Enfin, c'est à toi de voir...
MegaBob
Messages postés
27
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
19 octobre 2008
2
13 juin 2008 à 11:53
13 juin 2008 à 11:53
C'est tout marche merci de vos réponses.
hamza_bba
Messages postés
78
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
6 août 2009
1
13 juin 2008 à 11:55
13 juin 2008 à 11:55
de rien merçi
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Raph707
Messages postés
5
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
26 août 2008
13 juin 2008 à 14:39
13 juin 2008 à 14:39
http://www.debutantprogjava.com/
c un très bon site pour commencer à programmer en java
très très apprécié des débutants. D'ailleurs, il est fait pour les débutants.
c un très bon site pour commencer à programmer en java
très très apprécié des débutants. D'ailleurs, il est fait pour les débutants.
MegaBob
Messages postés
27
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
19 octobre 2008
2
13 juin 2008 à 19:10
13 juin 2008 à 19:10
C'est bon mon programme marche merci de vos réponses.
Je souhaiterais maintenant utiliser un tableau a 2 dimensions
J'ai une variable
[code]
RecupClient="1:Dupont:Jean:32:Paris:67956:123443#4:Legrand:Yves:67:Lyon:87568:nuul#"
[/code]
Les : servent a séparer les mots et le # a séparer les lignes.
Je souhaiterais récupéré ces valeur dans un tableau a 2 dimension afin de pouvoir les afficher dans une JTable.
J'ai fais
[code]
String[] RClient;
RClient=RecupClient.split("#");
RClient=RClient.split(":");
// puis pour l'affichage
String[] Tab = new String[RClient.length-1];
for(int i = 0; i < RClient.length-1; i++) {
Tab[i] = RClient[i+1];
}
DefaultTableModel tm = (DefaultTableModel)m_Gestion.GetJTableClient().getModel();
tm.addRow(Tab);
[/code]
Cela marche pour une ligne mais je cherche a afficher un nombre variables de lignes, dont les valeur "null" doivent être remplacer par " " et ne pas afficher la 1ere valeur.
Ci quelqu'un a une idée? merci d'avance
Je souhaiterais maintenant utiliser un tableau a 2 dimensions
J'ai une variable
[code]
RecupClient="1:Dupont:Jean:32:Paris:67956:123443#4:Legrand:Yves:67:Lyon:87568:nuul#"
[/code]
Les : servent a séparer les mots et le # a séparer les lignes.
Je souhaiterais récupéré ces valeur dans un tableau a 2 dimension afin de pouvoir les afficher dans une JTable.
J'ai fais
[code]
String[] RClient;
RClient=RecupClient.split("#");
RClient=RClient.split(":");
// puis pour l'affichage
String[] Tab = new String[RClient.length-1];
for(int i = 0; i < RClient.length-1; i++) {
Tab[i] = RClient[i+1];
}
DefaultTableModel tm = (DefaultTableModel)m_Gestion.GetJTableClient().getModel();
tm.addRow(Tab);
[/code]
Cela marche pour une ligne mais je cherche a afficher un nombre variables de lignes, dont les valeur "null" doivent être remplacer par " " et ne pas afficher la 1ere valeur.
Ci quelqu'un a une idée? merci d'avance
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
328
13 juin 2008 à 20:35
13 juin 2008 à 20:35
Bonsoir,
Moi je ferais un truc du genre plutôt:
Ca ne marche pas ça? En tout cas l'idée c'est de ne pas utiliser rClient pour faire plusieurs choses à la fois : soit tu l'utilises pour découper suivant les #, soit suivant les :, mais pas les deux à la fois, il faut utiliser une autre variable pour pouvoir parcourir à la fois tes lignes et tes colonnes.
Cordialement,
Moi je ferais un truc du genre plutôt:
//rClient est un tableau contenant toutes les lignes String[] rClient = RecupClient.split("#"); DefaultTableModel tm = (DefaultTableModel)m_Gestion.GetJTableClient().getModel(); for (int i = 0; i < rClient.length-1; i++) { //row contient toutes les colonnes d'une ligne String[] row = rClient[i+1].split(":"); tm.addRow(row); }
Ca ne marche pas ça? En tout cas l'idée c'est de ne pas utiliser rClient pour faire plusieurs choses à la fois : soit tu l'utilises pour découper suivant les #, soit suivant les :, mais pas les deux à la fois, il faut utiliser une autre variable pour pouvoir parcourir à la fois tes lignes et tes colonnes.
Cordialement,
MegaBob
Messages postés
27
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
19 octobre 2008
2
13 juin 2008 à 23:22
13 juin 2008 à 23:22
La fonction marche mais ne m'affiche que la 2eme ligne et avec la 1ere valeurs, il me faudrait toutes les lignes mais sans la 1ere valeurs a chaque fois.
Mais merci de l'info
Mais merci de l'info
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
328
14 juin 2008 à 00:06
14 juin 2008 à 00:06
Ah ok,
Essaie ça plutôt alors :
C'est assez pourri vu qu'on est obligé de copier deux fois les mêmes données et que l'un des tableaux ne nous sert à rien (on a une complexité en O(n²) qui n'est pas satisfaisante).
Tu ne peux pas essayer d'avoir ta chaîne d'une meilleure façon plutôt ? De façon à ce qu'elle ne contienne pas les données que tu ne veux pas afficher (le premier élément de chaque ligne) ?
Ca serait beaucoup plus efficace.
Quoiqu'il en soit, c'est pas top de construire des tableaux depuis une String à parser comme ça. Il y a plein d'implémentations d'ensembles en java, efficaces et faciles à utiliser, ce serait plus pratique et plus performant.
Tiens nous au courant,
Essaie ça plutôt alors :
//rClient est un tableau contenant toutes les lignes String[] rClient = RecupClient.split("#"); DefaultTableModel tm = (DefaultTableModel)m_Gestion.GetJTableClient().getModel(); for (int i = 0; i < rClient.length; i++) { //row contient toutes les colonnes d'une ligne String[] rowTemp = rClient[i].split(":"); //on est obligé de faire une copie du tableau pour avoir un String[] qui ne contienne pas la première colonne String[] row = new String[rowTemp.length -1]; for (int j = 0; j < row.length; j++) { row[j] = rowTemp[j+1]; } tm.addRow(row); }
C'est assez pourri vu qu'on est obligé de copier deux fois les mêmes données et que l'un des tableaux ne nous sert à rien (on a une complexité en O(n²) qui n'est pas satisfaisante).
Tu ne peux pas essayer d'avoir ta chaîne d'une meilleure façon plutôt ? De façon à ce qu'elle ne contienne pas les données que tu ne veux pas afficher (le premier élément de chaque ligne) ?
Ca serait beaucoup plus efficace.
Quoiqu'il en soit, c'est pas top de construire des tableaux depuis une String à parser comme ça. Il y a plein d'implémentations d'ensembles en java, efficaces et faciles à utiliser, ce serait plus pratique et plus performant.
Tiens nous au courant,
MegaBob
Messages postés
27
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
19 octobre 2008
2
14 juin 2008 à 11:41
14 juin 2008 à 11:41
C'est bon mon programme marche impecable un grand merci a toi.