嘿伙计我正在编写这个程序,我对这个方法有疑问。
public int titlesearch()
{
System.out.println("What is the title of the game you want to search for?");
String searchkey;
searchkey =input.nextLine();
String titlekey=searchkey.toLowerCase();
for (int i=0;i<gamelist.size();i++)
{
String gametitle=gamelist.get(i).getTitle();
if (gametitle.equals(titlekey) && gamelist.get(i).getSelling()== true)
{
System.out.println("Game is found!");
return i;
}
}
return -1;
}
基本上,我遇到的问题是它第一次运行时会跳过用户输入,然后返回-1,完全跳过searchkey = input.nextLine()。但是,如果我第二次打电话,它就会起作用。该方法有什么问题?
Scanner input=new Scanner(System.in);
List<gameprofile> gamelist= new Arraylist<>();
这些是上述方法的声明。顺便说一下,我已经检查了,整个程序运行但这是我唯一的问题。
答案 0 :(得分:0)
你应该这样做很好,我没有理由为什么你的输入行应该被跳过。我试过它并在Windows和Linux上以及从命令行和eclipse中执行它,每次都很好。
我能想象的唯一原因是,输入缓冲区中已经存在某些内容,但我不知道为什么。你如何开始你的计划以及在哪个环境中?
PS:一句小话,不要用小写字母命名您的课程,因此它应该是Gameprofile
或更好GameProfile
而不是gameprofile
。
答案 1 :(得分:-1)
if(!gamelist.isEmpty){
//put your for loop inside here
}
也许你的清单是空的,请在循环前放空检查