我正在通过控制台显示酒店预订系统。系统应该允许用户选择最多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);
}
}
答案 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 []。