方法运行时无需用户输入

时间:2013-08-06 07:43:27

标签: java methods input

嘿伙计我正在编写这个程序,我对这个方法有疑问。

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<>();

这些是上述方法的声明。顺便说一下,我已经检查了,整个程序运行但这是我唯一的问题。

2 个答案:

答案 0 :(得分:0)

你应该这样做很好,我没有理由为什么你的输入行应该被跳过。我试过它并在Windows和Linux上以及从命令行和eclipse中执行它,每次都很好。

我能想象的唯一原因是,输入缓冲区中已经存在某些内容,但我不知道为什么。你如何开始你的计划以及在哪个环境中?

PS:一句小话,不要用小写字母命名您的课程,因此它应该是Gameprofile或更好GameProfile而不是gameprofile

答案 1 :(得分:-1)

if(!gamelist.isEmpty){  

    //put your for loop inside here
}

也许你的清单是空的,请在循环前放空检查