CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[JAVA] Créer un tableau double dimension de String

[][][][][
[][][][][
Niveau 6
11 février 2015 à 19:12:37

Bonsoir

Voila mon problème: j'essaye depuis plusieurs heures sans succès de faire fonctionner un tableau de String. Il faut qu'il soit en deux dimensions. En gros normalement ça devrait être ça lors de la déclaration au sein de ma classe : private String[][] Cadrillage = new String[taille][taille];

Sauf que, quoi que je fasse, impossible de le modifier. Quand je veux l'initialiser dans mon constructeur, j'ai toujours une erreur de dépassement Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

Alors que pourtant, j'ai beau cherché je vois pas où. :(

Voila mon constructeur:

 

public Plateau(){
		taille = 3;
		for(int i = 0; i < taille; ++i){
			for (int j = 0; j < taille; ++j){
				Cadrillage[i][j] = "   ";
		}
	}
}

Ici je veux juste initialiser toutes les cases avec des espaces (3 espaces), qui seront remplies plus tard si besoin. Pourtant un truc aussi con ça marche pas :-(

Fin bref, je vois pas où je me serais planté...

Merci d'avance de votre aide

[][][][][
[][][][][
Niveau 6
11 février 2015 à 19:37:19

Le 11 février 2015 à 19:35:32 BeatHazard a écrit :
Ton tableau est initialisé avant ?

Non, je l'initialise avec le constructeur. En gros quand je veux créer un plateau je fais:

 Plateau P1 = new Plateau(); 

Normalement au départ le tableau est vide, il est juste prêt à recevoir des trucs :(

BeatHazard
BeatHazard
Niveau 9
11 février 2015 à 19:48:37

Faut utiliser ce que tu as marqué au début de ton message dans le constructeur avec la taille en paramètre du constructeur :
String[][] Cadrillage = new String[taille][taille];

Pseudo supprimé
Pseudo supprimé 11 février 2015 à 19:51:12

Tu as mis la taille du tableau après l'avoir créé en gros. Dès que ton tableau est initialisé, sa taille est fixe. Un exemple qui marche:


class Plateau {
	int taille;
		public Plateau(){
			taille = 3;
			String[][] Cadrillage = new String[taille][taille];
			for(int i = 0; i < taille; ++i){
				for (int j = 0; j < taille; ++j){
					Cadrillage[i][j] = "   ";
				}
			}
		}
}

Si tu n'avais pas initialisé le tableau après avoir spécifié que la taille est égale à 3, la taille aurait été 0.

Message édité le 11 février 2015 à 19:55:22 par Pseudo supprimé
[][][][][
[][][][][
Niveau 6
11 février 2015 à 19:59:33

Le 11 février 2015 à 19:51:12 [DSP] a écrit :
Tu as mis la taille du tableau après l'avoir créé en gros. Dès que ton tableau est initialisé, sa taille est fixe. Un exemple qui marche:


class Plateau {
	int taille;
		public Plateau(){
			taille = 3;
			String[][] Cadrillage = new String[taille][taille];
			for(int i = 0; i < taille; ++i){
				for (int j = 0; j < taille; ++j){
					Cadrillage[i][j] = "   ";
				}
			}
		}
}

Si tu n'avais pas initialisé le tableau après avoir spécifié que la taille est égale à 3, la taille aurait été 0.

Oh putain merci, ça marche enfin. Merci beaucoup :-)

Schiffer
Schiffer
Niveau 10
11 février 2015 à 21:33:47

Juste fais gaffe à l'instanciation des tableaux, ici avec String ça marche mais si c'était une autre class faudrait faire :


class Plateau {
  int taille;
      public Plateau() {
          taille = 3;
          Machin[][] Cadrillage = new Machin[taille][taille];
          for(int i = 0; i < taille; ++i) {
              Cadrillage[i] = new Machin[taille];
              for (int j = 0; j < taille; ++j) {
                  Cadrillage[i][j] = new Machin();
                  Cadrillage[i][j].methode();
              }
          }
      }
}
Message édité le 11 février 2015 à 21:34:06 par Schiffer
Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment