【问题标题】:Search through an array for a certain String在数组中搜索某个字符串
【发布时间】:2026-02-22 08:05:01
【问题描述】:

在 verifyPlate 方法中,如何在数组 Plates 中搜索某个字符串“platenum”,然后返回一个布尔值给 main 方法?

import java.util.Scanner;
import java.util.Date;
import java.io.*;

public static boolean verifyPlate(String[] plates, int numCars, Scanner keyboard)
  {
    Scanner s = new Scanner(System.in);

    System.out.print("Enter your plate number: ");
    String platenum = s.nextLine();

    boolean real=false;

    for (int i=0;i!=plates.length;i++)
    {
       boolean platers = platenum.equals(plates[i]); 

       if(platers)
       {
           System.out.println("Your vehicle is registered");
        }
       else
        System.out.println("Your vehicle is not registered");

     platers=real;
    }

    return real;
}

【问题讨论】:

    标签: java arrays search boolean return


    【解决方案1】:

    你只需要 1 行:

    return Arrays.asList(plates).contains(platenum);
    

    如果盘子是一个列表而不是一个数组,则可以省略对 asList 的调用。一般来说,要避免使用数组

    【讨论】:

      【解决方案2】:

      您的方法不起作用,因为real 变量可能会在循环中的下一次迭代之后被重置。试试这个:

      public static boolean verifyPlate(String [] plates, int numCars,
                                                        Scanner keyboard) {
          Scanner s = new Scanner(System.in);
      
          System.out.print("Enter your plate number: ");
          String platenum = s.nextLine();
      
          for (int i=0;i!=plates.length;i++){
              boolean platers = platenum.equals(plates[i]); 
      
             if(platers) {
             System.out.println("Your vehicle is registered");   
             return true;
             }
      
          }
          System.out.println("Your vehicle is not registered");
          return false;
      }
      

      【讨论】: