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
Es wurde wie.
Wenn Sie den Teil von nextLine in next ändern
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