-1

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

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

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

4

1 回答 1

0

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

我能想象的唯一原因是,您的输入缓冲区中已经有一些东西,但我不知道为什么。您如何启动您的程序以及在哪个环境中启动程序?

PS:一个小小的说明,不要用小写字母命名你的类,所以它应该Gameprofile甚至更好GameProfile而不是gameprofile.

于 2013-08-06T12:22:08.443 回答