当前位置: 主页 > JAVA语言

java string 二维数组-二维布尔型数组中的使用字符串索引表示法

发布时间:2023-06-27 09:18   浏览次数:次   作者:佚名

我的第一个建议是尝试使用不同的数组索引表示法。在您的示例数组中,您声明用户将输入行,然后输入行。行通常是向上和向下的。我建议使用row,column或者i,j或者n,m这两种更常见的方式来描述2d数组中的位置。

此外,在本例中使用字符串数组会产生不必要的开销。一个二维布尔型数组就足够了。

java byte数组转string_java string类型数组_java string 二维数组

要回答您的问题,这取决于您想要存储哪些座位被占用。如果您希望您的类存储其当前状态

public class SomeSeatClass {
    private String[][] currentState;
    public SomeSeatClass(int rows, int cols) {
        currentState = new String[rows][cols];
        // sets the size of the 2d array and then initialize it so that no seats are
        // taken.
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < rows; j++) {
                currentState[i][j] = "0";
            }
        }
    }
    public void setSeat(int rows, int lines) {
        currentState[rows][lines] = "x";
    }
    public String[][] getCurrentState() {
        return this.currentState;
    }
}

java string 二维数组_java byte数组转string_java string类型数组

复制

但是,如果您只想让函数处理新位置并返回更新后的数组,那么我建议您将函数设为静态的,如下所示

java string 二维数组_java byte数组转string_java string类型数组

public static String [][] seatInfo(String [][] a, int rows, int lines){
        String[][] returnString = a.clone();
        returnString[rows][lines] = "x";
        return returnString;
    }

复制

java string 二维数组_java byte数组转string_java string类型数组

然后在你的主代码中

    int numberOfRows =5;
    int numberOfColumns = 3;
    String[][] seating = new String[numberOfRows][numberOfColumns];
    //initialize array to "0"s
     for (int i = 0; i < numberOfRows; i++) {
            for (int j = 0; j < numberOfColumns; j++) {
                seating[i][j] = "0";
            }
        }
     //get the row and col from user
     int userRow = 1;
     int userCol = 1;
     //seating now holds the most current state 
    seating =  SomeSeatClass.seatInfo(seating, userRow, userCol);

java string 二维数组_java string类型数组_java byte数组转string

复制

我认为你遇到的问题是,你正在循环你的数组java string 二维数组,并在每次函数调用时将所有东西重置为"0“。您只需要在开始时将所有内容设置为零,然后更新哪个座位被占用。

注意:要小心地认为数组是从1,1开始的。它们从0,0开始,这样使用起来最简单,但对用户隐藏了这些细节。使用字符串作为方法参数时要小心java string 二维数组,因为它们是不可变的。对字符串的任何更改都不会反映在函数外部。但是,您使用了一个字符串数组,这对它进行了一些更改。在考虑如何保存数据时要小心。字符串实际上是一个3d数组。在您的函数中,您传递了一个String[],它并不能真正帮助我们弄清楚如何处理字符串seatingArray