Hinweis: next ・ nextLine (Paiza lernt Java-Einführung 9: # 06)

Heute habe ich den folgenden Code in Paizas Java Primer 9 geschrieben.

Eingabe ist unten

6 Wiederherstellungsmittel Schild Kristall Kristall Schwert Schwert

Die Ausgabe ist unten


//Bilder in der richtigen Reihenfolge ausgeben
import java.util.*;

public class Main {
    public static void main(String[] args) {
        //Bild-Hash
        HashMap<String, String> itemImages  = new HashMap<String, String>();
        itemImages.put("Schwert", "http://paiza.jp/learning/images/sword.png ");
        itemImages.put("Schild", "http://paiza.jp/learning/images/shield.png ");
        itemImages.put("Wiederherstellungsmittel", "http://paiza.jp/learning/images/potion.png ");
        itemImages.put("Kristall", "http://paiza.jp/learning/images/crystal.png ");

        //Schreiben Sie unten von hier
        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>");
        }
    }
}

Hier oben

for (int i = 0 ; i < num; i++) {
            itemOrders[i] = sc.next();
        }

Teil von

for (int i = 0 ; i < num; i++) {
            itemOrders[i] = sc.nextLine();
        }

Wie auch immer

Lesen Sie die erste "6" des Eingabewerts und Wahrscheinlich, weil das letzte "Schwert" nicht gelesen wird

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

Es wurde wie.

Wenn Sie den Teil von nextLine in next ändern

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

Und es gelang.

Als Ergebnis der Untersuchung verschiedener Ursachen Aufgrund der Art von nextLine, beeinflusst von der vorherigen nextInt Es scheint, dass der Teil der von nextInt gelesenen Nummer als Leerzeichen gelesen wurde.

Ich habe es mit next behoben, weil es durch einen Zeilenumbruch erkannt wird, im Gegensatz zu nextLine, das sogar Leerzeichen erkennt. Ich dachte, das liegt daran, dass next den von nextInt gelesenen Teil nicht erkannt hat.

... Aber ich weiß nicht, ob das da ist, also wenn jemand es weiß, Ich wäre Ihnen sehr dankbar, wenn Sie mir sagen könnten ...! !! !! !! !! !! !! !! !! !! !! !! !!

Recommended Posts

Hinweis: next ・ nextLine (Paiza lernt Java-Einführung 9: # 06)
Java lernen (0)
[Java] Einführung
Deep Learning Java von Grund auf neu Kapitel 1 Einführung
Zum ersten Mal Java lernen [Einführung]
Für JAVA-Lernen (2018-03-16-01)
Schnelles Lernen von Java "Einführung?" Teil 1 Erstellen einer Umgebung
Java-Lerntag 5
Unterschied zwischen next () und nextLine () in Java Scanner
[Java] Einführung in Java
Einführung in Java
Java-Lerntag 2
Java-Lerntag 1
Schnelles Lernen von Java "Einführung?" Teil 2 Schreiben wir den Prozess
Schnell lernen Java "Einführung?" Teil 3 Von der Programmierung wegreden
Java-Leistung Kapitel 1 Einführung
Java abstrakter Modifikator [Hinweis]
[Java] Interne Iterator-Hinweise
Java Learning 2 (Lernen Sie die Berechnungsmethode)
Java-Lernen (bedingter Ausdruck)
Java-Lernnotiz (Methode)
Java lernen (1) -Hallo Welt
Einfaches Memo von JUnit of Java
[Java] Java SE 8 Silver Note
[Hinweis] Java: Zeichenkettenübersicht
Java-Lernnotiz (grundlegend)
Meine Studiennotiz (Java)
Java-Lernnotiz (Schnittstelle)
Einführung in den Java-Befehl
Java-Lernnotiz (Vererbung)
Java: Datum hinzufügen [Hinweis]
Einführung in effektives Java durch Üben und Lernen (Builder-Muster)