java - parking 场在矩阵中保存的内容不超过 1 行

标签 java overwrite parking

所以我为我的大学准备了这个项目,但我被困在这里,我尝试了我所想到的一切来使此代码保存超过 1 个槽,因为我必须将最多 100 个槽保存到矩阵数据库中。一切都很好,但程序总是覆盖第一行,从不传递到第二行......这是代码:

预留部分方法:

for (n=1; n<100; n++) {

    parkinglot[n][0] = Integer.toString(n);
    parkinglot[n][1] = JOptionPane.showInputDialog(null, "License plate: ").toUpperCase();
    String hourofreservation = JOptionPane.showInputDialog(null, "Reservation hour(hh:mm): ");
    parkinglot[n][2] = hourofreservation;
    parkinglot[n][3] = formatter.format(date);
    parkingtime = Integer.parseInt(JOptionPane.showInputDialog(null, "Hours : "));
    parkinglot[n][4] = Integer.toString(parkingtime);
    int totalfee = (toMinutes(parkingtime)/30) * fee;
    pay(totalfee);
    //SaveReservation(nrinmat, parkinglot);
    //save
    JOptionPane.showMessageDialog(null, "This is yout reservation" + "\n\n" + " | " + parkinglot[n][0] + " | " + parkinglot[n][1] + " | " + parkinglot[n][2] + " | " + parkinglot[n][3] + " | " + parkinglot[n][4] + " HOURS |");

    break;

    }   

数据库方法:

public static String[][] database(String [][]parkinglot)
        {
            System.out.println("This is database");
            for (int i = 1; i < parkinglot.length; i++) {
                for (int j = 0; j < parkinglot[i].length; j++) {
                    System.out.print(parkinglot[i][j] + "\t");
                }
                System.out.println();
            }

            return parkinglot;
        }

最佳答案

你的程序每次都从 1 开始,因为你有这一行:

for (n=1; n<100; n++)

在进入循环之前将n初始化为1。 (正如评论中所述,通常您会将 n 初始化为零,但这不是您的问题。)

稍后,当 n 仍为 1 时,您将跳出循环。当您再次调用此代码时(我假设它在函数中),它会重新初始化 n在循环开始时为 1。所以 n 绝不会是 1 以外的任何值。

如果您只想在每次运行程序时填写一条记录,那么您根本不需要循环。您需要将 n 的值存储在某个地方(例如在磁盘上或数据库中),然后在再次运行程序时将其读回。或者,如果您将 Parkinglot 的内容保存在某处并将其读回,您可以扫描它(使用 for 循环)以查找第一个空条目,然后将 n 初始化为该值,例如:

int n = 1; // or 0
for (; n < parkinglot.length && parkinglot[n][0] != null; n++);
if (n < parkinglot.length) {
    populateParkingLotEntry(parkinglot, n);
} else {
    // No more slots left...
}

关于java - parking 场在矩阵中保存的内容不超过 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59455770/

相关文章:

Java日期问题

java - 远程服务器的 JFilechooser

R Raster writeRaster 不会覆盖

java - 在调用函数的所有地方删除函数第一个参数的快捷方式

Java 程序无法针对 ldap 进行身份验证

Python:覆盖两个变量

image - 如何使用批处理文件将随机图像从文件夹复制到其他文件夹?

redirect - 301重定向与 parking

opencv - 如何使用 OpenCV/JavaCV 识别 parking 场?