Tableaux a 2 dimensions en JAVA

[Fermé]
Signaler
Messages postés
27
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
19 octobre 2008
-
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
-
Bonjour,je souhaiterais maintenant utiliser un tableau a 2 dimensions

J'ai une variable

RecupClient="1:Dupont:Jean:32:Paris:67956:123443#4:Legrand:Yves:67:Lyon:87568:nuul#"


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);


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

6 réponses

Messages postés
27
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
19 octobre 2008
2
Merci je vais essayer ça, split marche un peu comme Tokenizer il coupe la variable a chaque fois qu'il rencontre le caractère passer en paramètre et place les valeurs obtenue dans un tableau.

Encore merci de ton aide.
1
Merci

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

CCM 42854 internautes nous ont dit merci ce mois-ci

Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
19
Quand je démonte une ligne en java, j'utilise string tokenizer. Tu devrais peut-être cherché un truc en rapport avec ça (C'est facile à utiliser et vu que tes lignes ont des caractères choisis exprès pour les retour de ligne, etc et qu'ils sont fixes, c'est possible de l'utiliser).

Je ne connais pas l'autre mais avec un string tokenizer tu serais capable de récupérer tous les morceaux de ton string et de les insérer dans un tableau à deux dimensions (avec deux [x][x]).
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010
144
pas de tableaux à deux dimension en jAVA mais des tableaux de tableaux. en somme tu as tableau[],[]
qui peut se représenter comme ça
tu as un tableau à une colonne et 5 lignes
et à chaque cellules tu redonne un tableau à une LIGNE et x colonne. en tu peux choisir d'avoir autant de colonne partout ou de faire des nombres aléatoire de colonne
tableau[5],[5] sera équivalent à un tableau[5,5] dans un autre langage
maus tu peux faire tableau[],[] = new tableau [5],[]
et ensuite dire tableau[1],[5]
tableau[2],[6] etc
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
19
http://www.a525g.com/programmation/java-introduction-tableaux.htm
monTableau = new int[2][4];


Je trouve nul part de tableau ou c'est séparer par une virgule. Tu peux me dire où tu as trouvé ça car ça m'intrigue beaucoup :o
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010
144 >
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010

... c'est marqué... là où je me suis trompé. désolé, j'ai confondu avec un langage qui demande une telle écriture, le java ne met pas de virgule désolé
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
19 >
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010

Ok ok. Je pensais qu'il y avait peut-être plusieurs façon de faire car tu avais l'air sûr (ou plus ancienne car le langage évolue). En tout cas, ton principe est bon mais sans les virgules ^^
Messages postés
27
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
19 octobre 2008
2
J'ai fais

String[] RClient;
String[] ligne;
ligne = RecupClient.split("#");
String[][] resultat = new String[ligne.length][];
for(int i = 0; i < ligne.length; i++) {
resultat[i] = ligne[i].split(":");
}
//puis pour l'affichage
DefaultTableModel tm = (DefaultTableModel) m_Gestion.Ordonnance.GetJTableClient().getModel();
String[] Tab = new String[ligne.length-1];
for(int j=0;j<resultat[j].length;j++)
{
for(int i = 0; i < ligne.length-1; i++) {
Tab[i] = resultat[j][i+1];
}
tm.addRow(Tab);
}

Mais cella ne m'affiche que la 1ere valeur du Tableau je ne vois pas ou est l'erreur?:?
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
19
Tu dois faire un double split alors. Un pour séparer les lignes et 1 pour séparer les mots.

Genre:
String RecupClient="1:Dupont:Jean:32:Paris:67956:123443#4:Legrand:Yves:67:Lyon:87568:nuul";
String lignes[]=RecupClient.split("#");
String lignes2[][];

Rendu là, tu as un tableau qui s'apelle ligne et qui donnera ca:
lignes[0]="1:Dupont:Jean:32:Paris:67956:123443";
lignes[1]="4:Legrand:Yves:67:Lyon:87568:nuul";

Ensuite tu splits encore les mots. Là, ton lignes.length devrait retourner 2:
for(int i = 0; i < lignes.length-1; i++) {
lignes2[i][]=lignes[i].split(":");
}

Ecoute, j'ai jamais utiliser split encore. J'utilisais Stringtokenizer. Mais en rentrant ce soir j'essayerais et je te redirais. Tu peux toujours essayé une solution proche de ce que j'ai donné et tenté de bidouiller dedans. peut-être que tu trouveras tout seul. ^^
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
19
La seule différence c'est que split, il découpe le string au complet en plusieurs morceaux et les place dans un tableau accessible avec [0],[1],[2], etc. Stringtokenizer ne fonctionne pas comme ça. ^^