Java 项目赢得';不接受第一个搜索项的输入

Java 项目赢得';不接受第一个搜索项的输入,java,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:

我正在写一个程序,其中包括一个方法来搜索歌曲数组中的歌曲。下面是给我带来麻烦的特定部分的代码。已经启动了
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));
当我运行程序时,它打印“Title”,但不允许我输入搜索词,它直接跳到“Author”。下面是我得到的输出

要搜索歌曲,请输入以下内容:
标题:作者:搜索
口译员:搜索
相册:搜索

有人能给我解释一下为什么会发生这种情况,以及如何修复它吗?我检查了又检查了我的代码,但我弄不明白

解决了我之前在程序中使用了另一种方法
nextInt()
。我采纳了@Rohit Jain建议的问题中的建议,在这段代码之前使用了一个空白的
nextLine()
,现在它可以工作了。谢谢

系统输出打印(“标题”)
应替换为
System.out.println(“Title:”)

我假设

Scanner kybd = new Scanner(System.in);
因为我看到了
kybd.nextLine()
方法


实际上,输入并没有被跳过,只是
Title:
Author:
由于
print
而不是
println
被相邻打印。你试过输入文本并按回车键吗?我确信您将被允许输入两次文本

您能显示完整的代码吗?不清楚您以前做了什么。如何初始化
kybd
对象?它的可能副本似乎您在该代码之前的某个地方使用过
Scanner\nextInt()
。查看上面的帖子。它解决了同样的问题。@RohitJain你是对的,我以前在我的程序中使用过nextInt。谢谢他的问题是他的代码跳过了输入。你的修正如何改变这一点?当我运行程序时,它打印“标题”,但不允许我输入搜索词,它直接跳到“作者”。问题不在于打印换行符。这是关于不读取一个变量的输入,而直接移动到另一个变量。我已经尝试过了,它确实跳过了“Title”,我的输入被分配到了“Author”。@sanbhat我不怀疑这一点。它还应与
print()
配合使用。有些东西OP没有显示出来。你的回答在处理OP的问题时不正确
println()
over
print()
不阻止跳过输入。