public static void main(String[] args) throws IOException {
final int MAX_PAYS = 250; //Afficher les 15 premiers Pays
Nation[] nat = new Nation[MAX_PAYS];
int nbPays = lireRemplir("tp2_pays_e20.txt", nat);
modification(nat, nbPays, "CHINE");
//modification(nat, nbPays, "JAPON");
}
Bien. Voilà je souhaiterais changer le '4' (char) qui se trouve devant la CHINE par le '3'. Cependant, il ne le trouve pas dans mon tableau, if(nat[i].getNom().equals("nomPays")) ne fonctionne pas. Il trouve -1 donc comme-ci il n'existait pas. J'ai essayez le == et le equals mais je ne sais pas quoi faire de plus. Pouvez-vous m'aider s'il vous plait?
Merci pour ta réponse mais j'en encore le message d'erreur :"java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 250". Comme il ne le trouve pas il note -1 et me retourne se message d'erreur... Est-ce que tu as une idée de pourquoi?? Merci ☺️
Non Chine est présent dans la liste en tant que tel "CHINE". Si je le ferais dans le if mais j'ai séparé les éléments pour savoir précisément où se trouvait le bugg et enfaite le if ne s'active pas car il ne trouve pas l'égalité....
Je suis désolé de te dire que ça ne fonctionne pas non plus. Effectivement, je n'est plus de message d'erreur mais en revanche il n'y à pas eu le changement
Contenu du tableau des nations des 15 premiers pays lus après la lecture du fichier:
2 ETATS-UNIS WASHINGTON 9629047 291289535
4 CHINE PEKIN 9596960 1273111290
5 RUSSIE MOSCOU 17075400 143954573
4 AUSTRALIE CANBERRA 7686850 19834248
3 JAPON KYOTO 377835 12761000
4 DES OURAGANS TEMPETE 1 1
5 ALLEMAGNE BERLIN 357027 8253700
5 FRANCE MARSEILLE 543964 61387038
5 ITALIE ROME 301230 57715620
3 COREE DU SUD SEOUL 99274 48324000
5 ROYAUME-UNI LONDRES 244101 58789194
2 CUBA LA HAVANE 100860 11184023
5 UKRAINE KIEV 603700 48396470
5 HONGRIE BUDAPEST 93030 10106017
5 ROUMANIE BUCAREST 238390 22272000
Contenu du tableau des nations Après avoir fait les changement:
2 ETATS-UNIS WASHINGTON 9629047 291289535
4 CHINE PEKIN 9596960 1273111290
5 RUSSIE MOSCOU 17075400 143954573
4 AUSTRALIE CANBERRA 7686850 19834248
3 JAPON KYOTO 377835 12761000
4 DES OURAGANS TEMPETE 1 1
5 ALLEMAGNE BERLIN 357027 8253700
5 FRANCE MARSEILLE 543964 61387038
5 ITALIE ROME 301230 57715620
3 COREE DU SUD SEOUL 99274 48324000
J'ai effectivement essayé de les debugger CHINE apparait bien comme tel. De plus j'ai créer de if pour justement rentrer au bon endroit et cela fonction. J'ai changé de méthode de comparaison, je suis passé avec des int et cela fonctionne ce n'est pas du tout ce que je veux mais tant que cela fonction...
public String getNom() {
return this.nom;
}
public void setNom(String nom2) {
this.nom = nom2;
}
Petit aparté, dans une condition, il est toujours préférable de tester en utilisant la notation Yoda (literal.equals(entrée)) pour gérer les cas null naturellement.
Comme nous venons de le voir en MP, getNom() ne retourne pas "CHINE" mais "CHINE " d'où le problème avec la comparaison.
Pour résoudre rapidement ton problème, tu peux faire un appeler la méthode trim ou revoir la manière de lire ton fichier comme l'avais proposé Play50hz dans un autre topic.
Petite question avec le equals
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl