Remarque: suivant ・ nextLine (paiza apprenant l'introduction de Java 9: # 06)

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

スクリーンショット 2019-08-23 20.09.14.png

C'est devenu comme.

Si vous changez la partie de nextLine en next

スクリーンショット 2019-08-23 20.09.35.png

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

Remarque: suivant ・ nextLine (paiza apprenant l'introduction de Java 9: # 06)
Apprendre Java (0)
[Java] Introduction
Deep Learning Java à partir de zéro Chapitre 1 Introduction
Apprendre pour la première fois java [Introduction]
Pour l'apprentissage JAVA (2018-03-16-01)
Apprentissage rapide de Java "Introduction?" Partie 1 Création d'un environnement
Jour d'apprentissage Java 5
Différence entre next () et nextLine () dans Java Scanner
[Java] Introduction à Java
Introduction à Java
java learning day 2
java learning day 1
Apprentissage rapide Java "Introduction?" Partie 2 Écrivons le processus
Apprentissage rapide de Java "Introduction?" Partie 3 Parler de programmation
Java Performance Chapitre 1 Introduction
Modificateur abstrait Java [Note]
[Java] Notes de l'itérateur interne
Java Learning 2 (Apprenez la méthode de calcul)
apprentissage java (expression conditionnelle)
Mémo d'apprentissage Java (méthode)
Apprendre Java (1) - Hello World
Mémo simple de JUnit de java
[java] Java SE 8 Silver Note
Interface d'historique d'apprentissage JAVA
[Note] Java: enquête sur les chaînes de caractères
Mémo d'apprentissage Java (basique)
Ma note d'étude (Java)
Mémo d'apprentissage Java (interface)
Introduction à la commande java
Mémo d'apprentissage Java (héritage)
java: Ajouter une date [Note]
Introduction à Effective Java en pratiquant et en apprenant (modèle Builder)