Rechercher : dans
Par :

Tableaux a 2 dimensions en JAVA

Dernière réponse le 14 jun 2008 à 02:53:47 MegaBob, le 13 jun 2008 à 20:01:07 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Tableaux a 2 dimensions en JAVA » dans :
[Logiciel libre] Installation firefox 2.0+java+flash VoirInstallation firefox 2.0+java+flash en ligne de commande A. INTRODUCTION B. INSTALLATION FIREFOX 1. Création d'environnement 2. Téléchargement et vérification de la signature 3. Installation de Firefox 4. Démarrage de l'application C....
Manipulations élémentaires des tableaux sous MatLab VoirSommaire I. Stockage des tableaux II. L'indexation linéaire II.1. Accéder à un élément d'un tableau en utilisant l'indexation linéaire II.2. Passer d'une indexation à l'autre II.2.1. La fonction ind2sub II.2.2. La fonction sub2ind III. La...
Langage C - Les tableaux VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Les tableaux en langage C++ VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...

1

X-Fan, le 13 jun 2008 à 20:11:47
  • +1

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]). "Can't we learn from history, why's it such a mystery?"

Répondre à X-Fan

2

artragis, le 13 jun 2008 à 20:17:45
  • +1

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

Répondre à artragis

3

X-Fan, le 13 jun 2008 à 20:20:06
  • +1

http://www.a525g.com/programmation/java-introduction-tableau­x.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 "Can't we learn from history, why's it such a mystery?"

Répondre à X-Fan

4

artragis, le 13 jun 2008 à 20:30:08

... 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é

Répondre à artragis

5

X-Fan, le 13 jun 2008 à 20:32:46

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 ^^
"Can't we learn from history, why's it such a mystery?"

Répondre à X-Fan

6

MegaBob, le 13 jun 2008 à 23:18:13

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?:?

Répondre à MegaBob

7

X-Fan, le 13 jun 2008 à 23:34:41

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. ^^
"Can't we learn from history, why's it such a mystery?"

Répondre à X-Fan

8

MegaBob, le 13 jun 2008 à 23:39: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.

Répondre à MegaBob

9

 X-Fan, le 14 jun 2008 à 02:53:47

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. ^^ "Can't we learn from history, why's it such a mystery?"

Répondre à X-Fan