비망록: next·nextLine(paiza 러닝 Java 입문편 9:#06에서)
입력은 다음
6
회복제
방패
크리스탈
크리스탈
검
검
출력은 이하
※화상이 6개 표시되면 성공
// 画像を順番に出力する
import java.util.*;
public class Main {
public static void main(String[] args) {
// 画像用ハッシュ
HashMap<String, String> itemImages = new HashMap<String, String>();
itemImages.put("剣", "http://paiza.jp/learning/images/sword.png");
itemImages.put("盾", "http://paiza.jp/learning/images/shield.png");
itemImages.put("回復薬", "http://paiza.jp/learning/images/potion.png");
itemImages.put("クリスタル", "http://paiza.jp/learning/images/crystal.png");
// ここから下を書く
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>");
}
}
}
여기서 위의
for (int i = 0 ; i < num; i++) {
itemOrders[i] = sc.next();
}
부분을
for (int i = 0 ; i < num; i++) {
itemOrders[i] = sc.nextLine();
}
어쨌든,
입력값의 최초의 「6」을 읽어들여,
마지막 "검"을 읽지 않는 탓인지,
처럼.
nextLine의 부분을 next로 고치면
되어 성공했습니다.
※화상 인용:
paiza 님보다
htps : // 파이자. jp / rks / 8 × xtl을 8로 넣는 B3 포 29 우쿠 rhMK6 에 R / 오 t t. HTML
htps: //파이자. jp /를 rks / 굳이 jYrty_tyZM-09Y8 qCbLkvgw7p-V9h / t t. HTML
더
원인을 다양하게 조사한 결과,
이전의 nextInt의 영향을 받아, nextLine의 성질상,
nextInt로 읽은 숫자 부분을 공백으로 읽어 버린 것 같습니다.
next로 해서 고친 것은, 공백까지 인식하는 nextLine과 달리, 개행으로 인식되기 때문에,
nextInt로 읽은 부분을 next는 인식하지 못했기 때문이라고 생각했습니다.
・・・라고는 해도 이것이 있는지 모르기 때문에, 알고 있는 사람이 있으면,
가르쳐 주시면 매우 매우 고맙습니다 ···! ! ! ! ! ! ! ! ! ! ! ! !
Reference
이 문제에 관하여(비망록: next·nextLine(paiza 러닝 Java 입문편 9:#06에서)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jlirnv24_ryo/items/99eb30daf32fdd363523텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)