java - 在字符串数组中搜索下一个可用的空白空间,然后将空间标记为已占用

标签 java arrays

我有一个用于显示座位计划的二维字符串数组。

String seating[][] = {{"XX", "02", "03","04","XX","06","07","08","09"},
                     {"10", "11", "12","13","XX","15","16","17","18"},
                     {"19", "20", "21","22","23","24","25","26","27"}};

我想要做的是在数组中搜索尚未标记为“XX”的可用空间,然后将“XX”分配给该空间以将其显示为已占用。 我知道您可以使用嵌套的 for 循环来搜索数组并显示数组内的元素,但是,我很难理解如何插入新元素来将位置标记为已占用。我对编程很陌生,因此我们将不胜感激。谢谢。

最佳答案

请注意,您在这里并不是向 2D 数组添加值(数组的长度无论如何都是固定的),您只是设置 2D 数组的元素的值。

如您所知,这是循环遍历 2D 数组的方式:

for (int i = 0 ; i < seating.length ; i++) {
    for (int j = 0 ; j < seating[i].length ; j++) {

    }
}

在循环内,seating[i][j] 是我们正在检查的元素。我们要检查它是否未被占用:

if (!seating[i][j].equals("XX"))

如果没有被占用,我们将其设置为已占用:

seating[i][j] = "XX";

在找到带有 break; 的座位后,不要忘记停止循环!由于我们要跳出外层循环,因此需要用标签标记外层循环。

完整代码:

outer: for (int i = 0 ; i < seating.length ; i++) {
    for (int j = 0 ; j < seating[i].length ; j++) {
        if (!seating[i][j].equals("XX")) {
            seating[i][j] = "XX";
            break outer;
        }
    }
}

您还可以添加一个 boolean 变量来检查座位是否成功占用:

boolean seatFound = false;
outer: for (int i = 0 ; i < seating.length ; i++) {
    for (int j = 0 ; j < seating[i].length ; j++) {
        if (!seating[i][j].equals("XX")) {
            seating[i][j] = "XX";
            seatFound = true;
            break outer;
        }
    }
}
if (seatFound) {
    // a seat was successfully occupied!
} else {
    // the seats were already all full!
}

关于java - 在字符串数组中搜索下一个可用的空白空间,然后将空间标记为已占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58630479/

相关文章:

javascript - 嵌套一些具有特定名称的键的对象组数组

java - 将数字表示为字符串的所有可能字符,Integer.java

php - 如何将字节数组转换为十六进制字符串?

c - c中函数调用中指向数组的指针

javascript - 排队 Freecodecamp

java - java中缺失的鼠标填充数据

java - JSF preRenderView 调用次数过多

java - 在设计异步 Java API 时,如何确保整个 CompletableFuture 链由内部线程池执行?

Java - 从一行中读取特定部分( ""之间)

python - numpy - 返回数组中元素的第一个索引