为什么代码不能读取nextLine()?

时间:2013-09-08 22:20:58

标签: java input java.util.scanner

else if(input==5){
    String artist = "Bob";
    System.out.print("Artist: ");
    artist = keyboard.nextLine();
    Playlist artistList = defaultPlaylist.getSongsByArtist(artist);
    artistList.printAllSongs();
}

当我运行它时,它会完全跳过[artist = keyboard.nextLine();]

键盘是扫描仪对象的一个​​实例。

编辑---------------------------------------------- -------------------------------------------------- ---------------------------- 通过“跳过”我的意思是完全忽略。我运行它时不会要求用户输入。

1 个答案:

答案 0 :(得分:2)

很可能语句是从不消耗这些字符的方法传递换行符,例如nextInt。因此,nextLine语句不会阻止输入。尝试在此声明之前使用这些字符

keyboard.nextLine(); // add this
artist = keyboard.nextLine();

如果有多个if语句块,那么最好在nextLine语句之前添加新的if语句(以避免多个newLine语句)

int input = keyboard.nextInt();
keyboard.nextLine();