我正在编写一个程序,其中包含一种搜索歌曲数组中歌曲的方法。以下是给我带来麻烦的特定部分的代码。 kybd
已经启动,下面是该部分的代码,使用我班级中的searchSong()
方法。
System.out.println("To search for a song, enter the following:");
System.out.print("Title: ");
searchT = kybd.nextLine();
System.out.print("Author: ");
searchAu = kybd.nextLine();
System.out.print("Interpreter: ");
searchI = kybd.nextLine();
System.out.print("Album: ");
searchAl = kybd.nextLine();
System.out.println("Found this:"+'\n'+lib.searchSong(searchT, searchAl, searchAu, searchI));
当我运行该程序时,它打印“标题”,但不允许我输入搜索词,它只是直接跳到“作者”。以下是我得到的输出。
要搜索歌曲,请输入以下内容:
标题:作者:搜索
口译员:搜索
专辑:搜索
有人可以向我解释为什么会发生这种情况,也许可以解决这个问题?我检查并仔细检查了我的代码,我无法弄明白。
解决了!我之前在程序中使用了nextInt()
作为另一种方法。我在@Rohit Jain建议的问题中接受了建议,并在此部分代码之前使用了空白nextLine()
,现在它可以工作了。谢谢!
答案 0 :(得分:2)
System.out.print("Title: ");
应替换为System.out.println("Title: ");
我假设
Scanner kybd = new Scanner(System.in);
因为我看到kybd.nextLine()
方法
实际上,由于Title:
代替Author:
而导致print
和println
彼此相邻,因此不会跳过输入。你尝试输入文字并点击输入了吗?我相信你可以输入两次文字