在预订系统中搜索数组中的值

时间:2017-03-13 07:22:04

标签: java arrays

我正在通过控制台显示酒店预订系统。系统应该允许用户选择最多10个房间号码(1-10)并给出正在预订的客户名称。下面我提出了一种方法,以便在程序运行时保持所有房间都为空。

private static void initialise(String hotelRef[]) {
for (int x = 0; x < 10; x++) {
    hotelRef[x] = "EMPTY";
    }
}

下面我试图通过酒店系统阵列查看是否找到了客户。目前,n个元素被拾取。谁能告诉我如何搜索元素?

  System.out.println("Please enter the customer name:");
            String findCust = input.next();
            for (int x = 0; x < 10; x++) {
                if (findCust.equals(hotel[x])) {
                    System.out.println("Room " + x + " is occupied by " + hotel[x]);

                } else {
                    System.out.println("Customer is not found.");
                    exitToMenu(hotel);

                }
            }

3 个答案:

答案 0 :(得分:0)

您的循环在第一次迭代后停止。您需要将代码更改为:

int y = -1;
 for (int x = 0; x < 10; x++)
 {
  if (findCust.equals(hotel[x]))
  {
            y = x;
            break;

  }
}
  if(y!=-1)
  {
  System.out.println("Room " + x + " is occupied by " + hotel[x]);

  } else 
 {
  System.out.println("Customer is not found.");
  exitToMenu(hotel);

 }

答案 1 :(得分:0)

使用Arrays.asList()将数组转换为列表,并使用方法<arraylistName>.contains(Object)检查对象是否存在。

答案 2 :(得分:-1)

if (findCust.equals(hotel[x])) {
     System.out.println("Room " + x + " is occupied by " + hotel[x]);

} else {
     System.out.println("Customer is not found.");
     exitToMenu(hotel);

}

在上面的代码中,hotelRef数组和hotel数组是一样的吗?如果不是尝试使用hotelRef []而不是hotel []。