我有一个用于显示座位计划的二维字符串数组。
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/