3

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

4

1 回答 1

2

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

我假设

Scanner kybd = new Scanner(System.in);

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

实际上,输入并没有被跳过,只是因为Title:而不是. 您是否尝试输入文本并按 Enter 键?我相信您将被允许输入两次文本Author:printprintln

于 2013-06-28T18:09:49.443 回答