0
votes

Comment changer la disposition des valeurs dans un tableau?

QUESTION: Étant donné un tableau String de noms de pokémon:

public static void main(String[] args) {
    String[] pokemon= {"Bulbsaur","Squirtle","Weedle","Pidgey","Rattata"};
    int i=0;
    while(i<pokemon.length) {
        System.out.println(pokemon[i]);
        i++;
    }

}

a) En utilisant une boucle WHILE, écrivez le code pour afficher les noms de pokémon comme indiqué

sortie: strong>

Rattata

Pidgey

Weedle

Squirtle

Bulbsaur

(c'est dans l'ordre ci-dessus)

J'essaye aussi la question:

 String[] pokemon={"Bulbsaur","Squirtle","Weedle","Pidgey","Rattata"};

Tout ce que je veux savoir, c'est que comment organiser la valeur comme l'ordre de sortie. Je sais que je peux simplement changer de position, mais je ne pense pas que la question dit que je peux le faire.

Merci de votre aide!


0 commentaires

4 Réponses :


3
votes

Répétez simplement le tableau à l'envers et imprimez:

String[] pokemon= {"Bulbsaur","Squirtle","Weedle","Pidgey","Rattata"};
int len = pokemon.length;
for (int i=0; i < pokemon.length/2; ++i) {
    String temp = pokemon[i];
    pokemon[i] = pokemon[len-1-i];
    pokemon[len-1-i] = temp;
}

Si vous aviez réellement besoin d'inverser l'ordre dans votre tableau Pokemon, alors je vous suggère de faire un échange sur place:

String[] pokemon= {"Bulbsaur","Squirtle","Weedle","Pidgey","Rattata"};
int i = pokemon.length - 1;
while (i >= 0) {
    System.out.println(pokemon[i--]);
}


3 commentaires

(Ou, itérer vers l'avant mais afficher pokemon [pokemon.length-1-i] ).


Notez que la question dit boucle while.


@AndyTurner Answer mis à jour, comprenant également une option pour inverser réellement l'ordre des noms de Pokémon dans le tableau.



1
votes

La sortie est juste imprimée le tableau d'origine à l'envers.

Pour inverser le tableau en utilisant la boucle while, procédez comme suit.

public static void main(String[] args) {
    String[] pokemon= {"Bulbsaur","Squirtle","Weedle","Pidgey","Rattata"};
    int i=pokemon.length;
    while(i > 0) {
        System.out.println(pokemon[i-1]);
        i--;
    }
}

Pour imprimer le tableau à l'envers, vous doivent commencer du dernier élément au premier élément. Le dernier élément sera pokemon [pokemon.length - 1] et le premier élément sera pokemon[0ITED


0 commentaires

1
votes

En plus de l'itération avec un index explicite, vous pouvez créer un ListIterator sur le tableau, puis utilisez-le pour itérer votre tableau à l'envers. Comme,

String[] pokemon = { "Bulbsaur", "Squirtle", "Weedle", "Pidgey", "Rattata" };
List<String> list = Arrays.asList(pokemon);
Collections.reverse(list);
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
    System.out.println(iter.next());
}

Sorties (comme demandé)

Rattata
Pidgey
Weedle
Squirtle
Bulbsaur

Une autre option serait de créer une Liste de noms et inversez-le, puis répétez-le normalement. Comme,

String[] pokemon = { "Bulbsaur", "Squirtle", "Weedle", "Pidgey", "Rattata" };
ListIterator<String> iter = Arrays.asList(pokemon).listIterator(pokemon.length);
while (iter.hasPrevious()) {
    System.out.println(iter.previous());
}


0 commentaires

0
votes
public static void main(String[] args) {

String[] pokemon={"Bulbsaur","Squirtle",
"Weedle","Pidgey","Rattata"};

   for(int i=pokemon.length;i > 0;i--) {

     System.out.println(pokemon[i-1]);
 }
}

0 commentaires