gpt4 book ai didi

java - 如何为指定索引添加数组值而不替换它?

转载 作者:行者123 更新时间:2023-12-01 11:06:39 24 4
gpt4 key购买 nike

这只是一个方法类。

        System.out.print("1. Add Customer..............................................P500.00\n");
case 1://Add Customer

for (int x = 0; x < CustomerInfo.length; x++){// Start For Records
x++;
System.out.print("\nConfimation Number: ");
CustomerInfo[x][0][0][0][0][0] = br.readLine();
System.out.print("\nFirst Name: ");
CustomerInfo[x][1][0][0][0][0] = br.readLine();
System.out.print("Last Name: ");
CustomerInfo[x][0][1][0][0][0] = br.readLine();
System.out.print("Guest: ");
CustomerInfo[x][0][0][1][0][0] = br.readLine();
System.out.print("Night: ");
CustomerInfo[x][0][0][0][1][0] = br.readLine();
System.out.print("Accommodation: ");
CustomerInfo[x][0][0][0][0][1] = br.readLine();
System.out.println();
break;
}

break;


for (int x = 0; x < CustomerInfo.length; x++){

if (CustomerInfo[x][0][0][0][0][0] != null){
if (CustomerInfo[x][1][0][0][0][0] != null){
if (CustomerInfo[x][0][1][0][0][0] != null){
if (CustomerInfo[x][0][0][1][0][0] != null){
if (CustomerInfo[x][0][0][0][1][0] != null){
if (CustomerInfo[x][0][0][0][0][1] != null){


System.out.print("\n|---------------------------------------------------------------------|\n");
System.out.print("\n\nConfirmation Number: |---------------> " + CustomerInfo[x][0][0][0][0][1]);
System.out.print("\nGuest Name: |---------------> " + CustomerInfo[x][1][0][0][0][0] + " " + CustomerInfo[x][0][1][0][0][0]);
System.out.print("\nNumber Of Guest: |---------------> " + CustomerInfo[x][0][0][1][0][0]);
System.out.print("\nNumber Of Nights: |---------------> " + CustomerInfo[x][0][0][0][1][0]);
System.out.println("\nAccommodations: |---------------> " + CustomerInfo[x][0][0][0][0][1]);

我第一次添加客户,然后如果我第二次添加客户,则不会记录第一个客户。

我注意到问题在于增量。

 for (int x = 0; x < CustomerInfo.length; x++) 

因为我在那之后使用了break。

break;

但我想要完成的是添加客户,当我添加另一个客户时,前一个客户应该与新客户一起显示。

我问的是我想一个接一个地添加更多的数组值。或者就像我为“[x]”添加值后我想再次添加,但不是同时添加

有什么建议吗?

我真的需要你的帮助。

最佳答案

您可能打算按如下方式声明 CustomerInfo:

String[] customerInfo = new String[6];

并且让每个数组 - 保存一个客户的信息,其中名字将存储在第一个索引上,姓氏将存储在第二个索引上,依此类推。

通过执行类似 CustomerInfo[][][][][][] 的操作 - 代码尝试声明/访问多维(6 维)数组 - 这可能是 不是您想要的。

现在 Java 是一种面向对象的编程语言,因此您应该尝试设计代码以使用对象而不是多维数组 - 这将使您的代码更易于阅读和维护。

首先,创建一个 CustomerInfo 类:

class CustomerInfo {
String confirmationNumber;
String firstName;
String lastName;
String guest;
String night;
String accommodation;

public CustomerInfo(String confirmationNumber,
String firstName,
String lastName,
String guest,
String night,
String accommodation) {
this.confirmationNumber = confirmationNumber;
this.firstName = firstName;
this.lastName = lastName;
this.guest = guest;
this.night = night;
this.accommodation = accommodation;
}
}

现在您有了这样一个数据“持有者”,您可以读取用户输入并将其保存到 CustomerInfo 列表中:

public static void main(String[] args) {
...
List<CustomerInfo> customerInfos = new ArrayList<CustomerInfo>();
for (int i = 0; i < customerInfos.length; i++){// Start For Records
System.out.print("\Confirmation Number: ");
String confirmationNumber = br.readLine();
System.out.print("\nFirst Name: ");
String firstName = br.readLine();
System.out.print("Last Name: ");
String lastName = br.readLine();
System.out.print("Guest: ");
String guest = br.readLine();
System.out.print("Night: ");
String night = br.readLine();
System.out.print("Accommodation: ");
String accommodation = br.readLine();
CustomerInfo customer = new CustomerInfo(confirmationNumber, firstName, lastName, guest, night, accommodation);
customerInfos.add(customer);
System.out.println();
}
}

如果你想做得更好,可以在上面添加一些验证,例如,如果 guest 是一个数字,你可以将其读取为 int 或尝试将其解析为 int - 如果用户输入一些奇怪的内容 - 显示正确的错误消息。等等

关于java - 如何为指定索引添加数组值而不替换它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32879129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com