Java 如果超出范围,则返回空字符串
如果输入了一个超出界限的数字,我如何让我的程序返回一个空集?底部的类只是一个测试人员,因此如果有人将Jezebel更改为第7行,我如何防止它崩溃?因为只有六排Java 如果超出范围,则返回空字符串,java,string,is-empty,Java,String,Is Empty,如果输入了一个超出界限的数字,我如何让我的程序返回一个空集?底部的类只是一个测试人员,因此如果有人将Jezebel更改为第7行,我如何防止它崩溃?因为只有六排 import java.util.Arrays; public class Classroom { private String[][] desks; private String[] students = {"Todd", "Harry", "James", "Bob", "Michael", "Fred", "Andy",
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");
}
导入java.util.array;
公共课堂{
私人字符串[][]桌子;
私有字符串[]学生={“托德”、“哈利”、“詹姆斯”、“鲍勃”、“迈克尔”,
“弗雷德”、“安迪”、“杰西卡”、“卡拉”、“埃德”、“简”、“丹尼斯”、“德怀特”,
“桑迪”、“托比”、“莎拉”、“兰迪”、“兰迪”、“约翰”、“约翰”等,
,
“大卫”,“大卫”,“大卫”,};
//行数为0.length
//列数为[0]。长度
公共教室(int行,int列){
int i=0;
desks=新字符串[行][列];
对于(int r=0;r|
}在尝试为数组编制索引之前,可以检查数组的长度,如下所示:
String[] myArray = new String[5]; // an array with indexes [0] to [4]
// ...
// at some point we might try to access the element at index [5]
// remembering that we only have indexes [0] -> [4] in a 5 element array
// so we first check that the array is of sufficient length
if(myArray.length >= 6) {
return myArray[5]; // 6th element
} else {
return "";
}
只是为了重新迭代,数组的长度是5个元素,但这些元素的索引是0、1、2、3、4。检查索引是否超出范围(例如
if(row<0 | | row>=desks.length)
),如果是,则返回“”
。您的方法isDeskTaken
没有意义“”.isEmpty()
为true
isDeskTaken
==>返回!课桌[行][列].isEmpty()代码>您建议我将其放在代码中的什么位置以返回空值?很抱歉,还是有点困惑。返回myArray[5]
可能会导致该条件出现ArrayIndexOutOfBoundsException
。“但是这些元素的索引是0、1、2、3、4。”是否要更新答案中的代码?