java - 通过数组列表搜索? java

标签 java if-statement for-loop arraylist

你好,所以我的问题中有两个数组列表,一个填充了前 1000 个女孩名字及其使用次数,另一个填充了前 1000 个男孩名字及其使用次数。用户输入一个名字,搜索两个数组列表,然后输出该名字是否在男孩或女孩的名字中,他们的排名以及他们被使用的次数。如果该名字位于前 1000 个男孩名字中,则还需要输出 The name is not apart of the top 1000 boy name,如果是男孩名字则相同。这就是我所拥有的

  public void search()
  {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Please enter the name you would like to search.");
    nameSearch = keyboard.next();

    for(int i = 0; i < girls.size(); i++)
    {
      if(nameSearch.equals(girls.get(i).getName()))
      {
        System.out.println(nameSearch + " is ranked " + (i+1) + " in popularity among girls with " + girls.get(i).getAmount() + " namings.");
      }

    }


    else
      System.out.println(nameSearch + " is not in the top 1000 girl names.");


    for(int i = 0; i < boys.size(); i++)
    {
      if(nameSearch.equals(boys.get(i).getName()))
      {
        System.out.println(nameSearch + " is ranked " + (i+1) + " in popularity among boys with " + boys.get(i).getAmount() + " namings.");
      }
    }


    else
      System.out.println(nameSearch + " is not in the top 1000 boys names.");

  }

显然我收到了一个错误,因为我不能有一个 else 语句,前面没有 if 。一切都有效,只要搜索数组并找到排名以及我只需要它输出正确的东西即可。我完全不知道该怎么做才能让它发挥作用。

更新-我尝试了 contains 方法,但我永远无法让它工作。当我知道它是存在的名称时,它总是输出它无法在两个数组中找到该名称。如果这看起来有问题,请告诉我,因为它无法正常工作

谢谢! ——杰西

   Scanner keyboard = new Scanner(System.in);
    System.out.println("Please enter the name you would like to search.");
    nameSearch = keyboard.next();

    if(girls.contains(nameSearch))
    {
      for(int i = 0; i < girls.size(); i++)
      {
        if(nameSearch.equals(girls.get(i).getName()))
        {
          System.out.println(nameSearch + " is ranked " + (i+1) + " in popularity among girls with " + girls.get(i).getAmount() + " namings.");
        }
      }
    } 
    else
      System.out.println(nameSearch + " is not in the top 1000 girl names.");



    if(boys.contains(nameSearch))
    {
      for(int i = 0; i < boys.size(); i++)
      {
        if(nameSearch.equals(boys.get(i).getName()))
        {
          System.out.println(nameSearch + " is ranked " + (i+1) + " in popularity among boys with " + boys.get(i).getAmount() + " namings.");
        }
      }
    } else
     {
      System.out.println(nameSearch + " is not in the top 1000 boys names.");
     }

最佳答案

您可以检查它是否包含它:

if(girls.contains(nameSearch)) {
   // Look for the data
} else {
   // print error
}

关于java - 通过数组列表搜索? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20450092/

相关文章:

sql - Oracle PL SQL : using labels to get out of for loops

c - 在 for 循环中遍历所有无符号整数

java - 线程和可运行

java - 通过 web xml 进行 Jersey 过滤器注册不起作用

java - 暂时在for循环中完成的一系列 Action 如何实现forkjoin

c++ - 20 个问题游戏

python - 如何处理许多几乎相同的 if 语句?

c# - 或整数

java - 增强的 For 循环异常

Java - 静态 Void 方法 - LinkedList - 按值传递