Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果超出范围,则返回空字符串_Java_String_Is Empty - Fatal编程技术网

Java 如果超出范围,则返回空字符串

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",

如果输入了一个超出界限的数字,我如何让我的程序返回一个空集?底部的类只是一个测试人员,因此如果有人将Jezebel更改为第7行,我如何防止它崩溃?因为只有六排

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。”是否要更新答案中的代码?