程序不接受第一个搜索词的输入

时间:2013-06-28 18:08:03

标签: java

我正在编写一个程序,其中包含一种搜索歌曲数组中歌曲的方法。以下是给我带来麻烦的特定部分的代码。 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(),现在它可以工作了。谢谢!

1 个答案:

答案 0 :(得分:2)

System.out.print("Title: ");应替换为System.out.println("Title: ");

我假设

Scanner kybd = new Scanner(System.in);

因为我看到kybd.nextLine()方法

实际上,由于Title:代替Author:而导致printprintln彼此相邻,因此不会跳过输入。你尝试输入文字并点击输入了吗?我相信你可以输入两次文字