Tableaux a 2 dimensions en JAVA

Fermé
MegaBob Messages postés 27 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 19 octobre 2008 - 13 juin 2008 à 20:01
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 - 14 juin 2008 à 02:53
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
A voir également:

6 réponses

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:39
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
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
13 juin 2008 à 20:11
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]).
0
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
13 juin 2008 à 20:17
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
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
13 juin 2008 à 20:20
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
0
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146 > X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010
13 juin 2008 à 20:30
... 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é
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19 > artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010
13 juin 2008 à 20:32
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 ^^
0
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:18
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?:?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
13 juin 2008 à 23:34
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. ^^
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
14 juin 2008 à 02:53
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. ^^
0