【问题标题】:Method is not reading the string I type in to it方法没有读取我输入的字符串
【发布时间】:2020-03-29 19:22:35
【问题描述】:

我正在制作票务系统。如果用户正在搜索票,他们会输入名称。当我要求用户输入时它不起作用。

如果我这样调用方法:G1.displayTicket("John Blogs", LottoTickets); 它确实有效!

显示某张票:

System.out.print("\nDo you wish to search for a particular ticket? ");
String certainTicketQ = in.next();
if(certainTicketQ.equalsIgnoreCase("Yes"))
{
    System.out.print("Name of the person you wish to search for: ");
    String name = in.next();
    G1.displayTicket(name, LottoTickets);   
}

方法是:

public void displayTicket(String name,Ticket[] LottoTickets)
{
    for(int i = 0; i<LottoTickets.length;i++)
    {
        if(name.equalsIgnoreCase(LottoTickets[i].getName())){
            System.out.println(LottoTickets[i]);
            break; //Breaks out of loop once ticket is found
        }else break;
    }
}

【问题讨论】:

  • 查看创建和发布有效的minimal reproducible example 并提出您的问题。请阅读链接以了解这意味着什么。此外,您还需要学习和学习 Java 命名约定。方法和变量都应该以小写字母开头,类以大写字母开头。遵循这些约定将使您的代码更容易被其他人(我们!)和您未来的自己阅读和理解。
  • 使用in.nextLine() 而不是in.next()
  • 是的,我都尝试过 in.nextLine() 而不是 in.next()。 @ArvindKumarAvinash
  • @SeanMcavoy - 我已经发布了答案。如有任何疑问/问题,请告诉我。
  • @ArvindKumarAvinash 是的,谢谢你现在试过了,效果很好。

标签: java arrays methods


【解决方案1】:

问题是由于else break; 的存在,如果LottoTickets[0] 不等于name,它会在第一次迭代中打破循环。只有当LottoTickets[0] 等于name 时才会返回正确的结果。

public void displayTicket(String name,Ticket[] LottoTickets) {
    for(int i = 0; i<LottoTickets.length;i++) {
        if(name.equalsIgnoreCase(LottoTickets[i].getName())) {
            System.out.println(LottoTickets[i]);
            break; //Breaks out of loop once ticket is found
        }else break;
    }
}

只需删除它,您的方法就会按预期工作,即它应该是:

public void displayTicket(String name,Ticket[] LottoTickets) {
    for(int i = 0; i<LottoTickets.length;i++) {
        if(name.equalsIgnoreCase(LottoTickets[i].getName())) {
            System.out.println(LottoTickets[i]);
            break; //Breaks out of loop once ticket is found
        }
    }
}

如有任何疑问/问题,请随时发表评论。

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 2014-03-26
    • 2018-07-21
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2020-03-17
    相关资源
    最近更新 更多