Sınırları bir sayı girilirse, programımı boş bir kümeye döndürmek için nasıl alabilirim? Alttaki sınıf sadece bir test edicidir, bu yüzden birisi Jezebel'i 7. sıraya çevirecek olsaydı, nasıl kilitlenmesini engellerdim? Sadece altı tane satır var.Sınırların dışına çıktığında boş dizge döndürün
import java.util.Arrays;
public class Classroom {
private String[][] desks;
private String[] students = {"Todd", "Harry", "James", "Bob", "Michael",
"Fred", "Andy", "Jessica", "Kara", "Ed", "Jane", "", "Dennis", "Dwight",
"Sandy", "", "Toby", "", "Sara", "", "Randy", "", "", "", "", "John", "",
"", "", "Lindsay", "", "", "", "", "", "Marie", "", "", "", "",
"David", "", "",};
// the number of row is desks.length
// the number of column is desks[0].length
public Classroom(int row, int column) {
int i = 0;
desks = new String[row][column];
for (int r = 0; r < row; r++) {
for (int c = 0; c < column; c++) {
desks[r][c] = students[i++];
//Arrays.fill(desks[r][c], students[i++]);
}
}
}
public void setDesks(String[][] desks) {
this.desks = desks;
}
public boolean isDeskTaken(int row, int column) {
boolean taken = false;
if (desks[row][column] == "") {
taken = true;
}
if (desks[row][column].isEmpty()) {
taken = false;
}
return taken;
}
public String getRow(int row) {
String name = Arrays.toString(desks[row]);
return name;
}
public String getStudent(int row, int column) {
return desks[row][column];
}
public boolean placeStudent(int row, int column, String name) {
boolean placed = false;
// call isDeskTaken(row, column) if not
if (desks[row][column].isEmpty()) {
desks[row][column] = name;
return true;
}
return placed;
} // places student if the seat is empty
public static void main(String[] args) {
Classroom classroom = new Classroom(6, 5);
System.out.println("getRow(2)" + classroom.getRow(2));
System.out.println("placeStudent(7,1) " + classroom.placeStudent(7, 1, "Jezebel"));
System.out.println("placeStudent(4,0) " + classroom.placeStudent(4, 0, "John"));
System.out.println("Student " + classroom.getStudent(4, 1) + " has been placed in the 4th row and 1st column");
}
} böyle, deneyin ve dizin önce
Dizinin sınırların dışında olup olmadığını kontrol edin (ör., (satır < 0 || row > = desks.length) ') ve" return "" eğer öyleyse. –
Sizin metodunuz "isDeskTaken" anlamsızdır. '' ”.isEmpty()' 'true' dir. –
'isDeskTaken' ==>' geri dönüşler [satır] [sütun] .isEmpty(); ' –