我想检查一个数组是否已满,如果是,则打印一条消息,如果它是空的则是同样的事情?
import java.util.Scanner;
public class MeetingFactory {
Scanner stringScan = new Scanner(System.in);
Scanner intScan = new Scanner(System.in);
public Meeting[][][] calendar = new Meeting[12][31][24];
private Object MeetingCreator;
public void MeetingCreator() {
System.out.println("Enter meeting subject");
String input = stringScan.nextLine();
System.out.println("Enter month");
int month = intScan.nextInt();
System.out.println("Enter day of month");
int date = intScan.nextInt();
System.out.println("Enter time");
int time = intScan.nextInt();
if (!==calendar[month][date][time]()) {
System.out.println("Another meeting is planned at this time, try other time or day");
calendar[month][date][time] = new Meeting(input);
}
MeetingMenu.Menu();
}
}
答案 0 :(得分:0)
现在,这一行:if (!==calendar[month][date][time]()) {
是无效的java代码。首先,Java不支持!==,只是!=。除此之外,你不是要试图检查右侧变量。解决这个问题:
更改此行:
if (!==calendar[month][date][time]()) {
为:
if (calendar[month][date][time] != null) {
答案 1 :(得分:0)
由于您正在使用3D矩阵,为了检查矩阵是空还是满,您需要一个三个嵌套的for循环来检查每个单元格。
例如,检查矩阵是否为空:
isEmpty = true;
outerloop:
for(int m = 1; m <= 12; m++) {
for(int d = 1; d <= 31; d++) {
for(int t = 1; t <= 24; t++) {
if(calendar[m][d][t] != null) {
isEmpty = false;
break outerloop;
}
}
}
}
这假设time
将从1开始并在24结束。不确定您是如何确切地实现它。使用这个逻辑,您应该能够弄清楚如何检查矩阵是否已满。