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()
overprint()
不阻止跳过输入。