IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

afficher un tableau multidimensionnel


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Par défaut afficher un tableau multidimensionnel
    Je galere pour afficher mon tableau d'une certaine façon, je vous explique par l'exemple:
    J'ai un tableau de dimension [35][64], avec des null quand il n'y a pas de caracteres dans les cases,
    Contenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tab[0][0]="R";
    tab[1][0]="R"; tab[1][1]="B";tab[1][2]="P";
    tab[2][0]="P";
    Je voudrais l'afficher comme ceci:
    RRP
    -B-
    -P-
    Mais je n'ai réussi à l'afficher que comme ça :
    R--
    RBP
    P--
    merci de me venir en aide car je vois pas comment m'en sortir!

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Je pense que tu utilises 2 blocs 'for' imbriqués :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for(int a=0; a<35; a++){
      for(int b=0; b<64; b++){
        System.out.println(tab[a][b]);
      }
    }
     
    =>
    R--
    RBP
    P--
    Il faut les inverser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for(int b=0; b<64; b++){
      for(int a=0; a<35; a++){
        System.out.println(tab[a][b]);
      }
    }
     
    =>
    RRP
    -B-
    -P-
    Si les dimensions de ton tableau risquent changer, il faut remplacer les valeurs max dans les boucles for par tab[].size(); et tab.size();

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Par défaut
    La réponse que t'a donné Caalador est correcte, sauf que tu pourra pas afficher 3 lettres sur la même ligne (à chaque fois retour à la ligne).
    pour cela, tu fais comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     for(int b=0; b<64; b++)
     {
         for(int a=0; a<35; a++)
         {
             System.out.print(tab[a][b]); //affiche les lettres sur la même ligne avec print
         }
     
         System.out.println(); // retour a la ligne pour la prochaine itération
     }

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Par défaut RE
    merci ça marche en effet mais ça n'optimise pas l'affichage, car je me retrouve avec 64 lignes contenant beaucoup de "null";
    du coup j'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String chaine = "";
    		for(int j=0; j<64; j++)
    		{
    			  for(int i=0; i<35; i++)
    			  {
    				 if (s[i][j]!= null)
    					chaine += s[i][j];
    				 else chaine +="..";
    			  }
    			  chaine += "\n";
    			}
    Mais c'est pareil j'ai 64 lignes avec beaucoup de "..".
    De plus j'ai un autre problème, je veux que tout soit aligné, mais mon tableau contient une lettre en majuscule et du coup quand je remplace les 'null' par des '..' ça n'aligne pas correctement; car par exemple un 'I' prend moins de place qu'un 'R'.
    Je me suis dit que je pourrais peut être utiliser un jTable car pour le moment j'affiche ma chaine de caractère dans un jLabel.

    Des suggestions ? merci !

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/08/2014, 17h56
  2. Réponses: 3
    Dernier message: 24/02/2014, 01h14
  3. Réponses: 5
    Dernier message: 23/02/2011, 18h44
  4. AFFICHER UN TABLEAU DYNAMIQUE
    Par ghassenus dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2002, 14h19
  5. [langage] tableau multidimensionnel
    Par totox17 dans le forum Langage
    Réponses: 3
    Dernier message: 03/12/2002, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo