Aujourd'hui, j'ai écrit le code suivant dans Java Primer 9 de paiza.
L'entrée est ci-dessous
6 Agents de récupération bouclier cristal cristal épée épée
La sortie est ci-dessous
//Images de sortie dans l'ordre
import java.util.*;
public class Main {
public static void main(String[] args) {
//Hachage d'image
HashMap<String, String> itemImages = new HashMap<String, String>();
itemImages.put("épée", "http://paiza.jp/learning/images/sword.png ");
itemImages.put("bouclier", "http://paiza.jp/learning/images/shield.png ");
itemImages.put("Agents de récupération", "http://paiza.jp/learning/images/potion.png ");
itemImages.put("cristal", "http://paiza.jp/learning/images/crystal.png ");
//Écrivez ci-dessous d'ici
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String[] itemOrders = new String[num];
for (int i = 0 ; i < num; i++) {
itemOrders[i] = sc.next();
}
for (String itemName : itemOrders) {
System.out.println("<img src = '" + itemImages.get(itemName) + "'>");
System.out.println("<br>");
}
}
}
Ci-dessus
for (int i = 0 ; i < num; i++) {
itemOrders[i] = sc.next();
}
Partie de
for (int i = 0 ; i < num; i++) {
itemOrders[i] = sc.nextLine();
}
En tous cas
Lisez le premier "6" de la valeur d'entrée et Probablement parce que la dernière "épée" n'est pas lue
C'est devenu comme.
Si vous changez la partie de nextLine en next
Et réussi.
À la suite d'enquêter sur diverses causes En raison de la nature de nextLine, influencée par la précédente nextInt Il semble que la partie du nombre lue par nextInt ait été lue comme un blanc.
Je l'ai corrigé avec next car il est reconnu par un saut de ligne, contrairement à nextLine qui reconnaît même les blancs. Je pensais que c'était parce que next ne reconnaissait pas la partie lue par nextInt.
... Mais je ne sais pas si c'est là, donc si quelqu'un le sait, Je vous serais très reconnaissant si vous pouviez me dire ...! !! !! !! !! !! !! !! !! !! !! !! !!
Recommended Posts