鱼C论坛

 找回密码
 立即注册
查看: 4902|回复: 5

[已解决]新手求助String二维数组

[复制链接]
发表于 2021-9-1 19:39:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
假定一宾馆有三层,第一层有4个房间,第二层3个房间,第三层5个房间,
某一天客人入住情况,打印当前的入住情况,二维数组实现。

第三层:
301 302:tom 303 304305rose
第二层:
201lily 202 203jack
第一层:
101lucy 102mike 103bob 104



利用Java数据类型中的String二维数组实现。


最佳答案
2021-9-10 13:58:36
public class Demo{

    public static void main(String[] args) {

        //可以看做一栋楼是一个数组,每层也是一个数组

        //一栋楼
        String[][] floor = new String[3][];

        //第一层
        String[] firstLayer = new String[4];
        //第二层
        String[] secondLayer = new String[3];
        //第三层
        String[] thirdLayer = new String[5];

        floor[0] = firstLayer;
        floor[1] = secondLayer;
        floor[2] = thirdLayer;

        //当天一层入住情况
        firstLayer[0] = "lucy";
        firstLayer[1] = "mike";
        firstLayer[2] = "bob ";
        firstLayer[3] = null;

        //当天二层入住情况
        secondLayer[0] = "lily";
        secondLayer[1] = null;
        secondLayer[2] = "jack";

        //当天三层入住情况
        thirdLayer[0] = null;
        thirdLayer[1] = "tom ";
        thirdLayer[2] = null;
        thirdLayer[3] = null;
        thirdLayer[4] = "rose";

        //打印当天入住情况
        for (int i = 0; i < floor.length; i++) {
            System.out.print("第" + (i + 1) + "层:");
            for (int j = 0; j < floor[i].length; j++) {
                String name = floor[i][j];
                String str = (i + 1) + "0" + (j + 1) + " " + (name == null ? "empty" : name) + "\t";
                System.out.print(str);
            }
            System.out.println();
        }
    }
}

输出如下:
第1层:101 lucy                102 mike        103 bob         104 empty       
第2层:201 lily                202 empty        203 jack       
第3层:301 empty        302 tom         303 empty        304 empty        305 rose

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-1 21:58:32 | 显示全部楼层
这里面的数据时固定的嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-2 19:18:31 | 显示全部楼层
不是,房客是每天在变的,表格里是当天的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-3 10:44:17 | 显示全部楼层
因为你只是打印当前楼层的住户,而每层楼的房间数不一样,所以我按最大的房间数来定义数组,代码如下:
 //规定楼层,三层,因每层人数不一样,故第二个按最多人数定
        String[][] str = new String[3][5];
        str[0][0] = "A";
        str[0][1] = "B";
        str[0][2] = "C";
        str[0][3] = "D";
        str[1][0] = "E";
        str[1][1] = "F";
        str[1][2] = "G";
        str[2][0] = "H";
        str[2][1] = "I";
        str[2][2] = "J";
        str[2][3] = "K";
        str[2][4] = "L";
        for (int i = 2; i >= 0; i--) {
            if (i == 0) {
                System.out.println("第一层");
                for (int j = 0; j < 4; j++) {
                    System.out.print(str[i][j] + " ");
                }
                System.out.println();
            }
            if (i == 1) {
                System.out.println("第二层");
                for (int j = 0; j < 3; j++) {
                    System.out.print(str[i][j] + " ");
                }
                System.out.println();
            }
            if (i == 2) {
                System.out.println("第三层");
                for (int j = 0; j < 5; j++) {
                    System.out.print(str[i][j] + " ");
                }
                System.out.println();
            }
        }
运行结果如下:
图片1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-3 10:45:05 | 显示全部楼层
不知道你想要的是不是这种的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-10 13:58:36 | 显示全部楼层    本楼为最佳答案   
public class Demo{

    public static void main(String[] args) {

        //可以看做一栋楼是一个数组,每层也是一个数组

        //一栋楼
        String[][] floor = new String[3][];

        //第一层
        String[] firstLayer = new String[4];
        //第二层
        String[] secondLayer = new String[3];
        //第三层
        String[] thirdLayer = new String[5];

        floor[0] = firstLayer;
        floor[1] = secondLayer;
        floor[2] = thirdLayer;

        //当天一层入住情况
        firstLayer[0] = "lucy";
        firstLayer[1] = "mike";
        firstLayer[2] = "bob ";
        firstLayer[3] = null;

        //当天二层入住情况
        secondLayer[0] = "lily";
        secondLayer[1] = null;
        secondLayer[2] = "jack";

        //当天三层入住情况
        thirdLayer[0] = null;
        thirdLayer[1] = "tom ";
        thirdLayer[2] = null;
        thirdLayer[3] = null;
        thirdLayer[4] = "rose";

        //打印当天入住情况
        for (int i = 0; i < floor.length; i++) {
            System.out.print("第" + (i + 1) + "层:");
            for (int j = 0; j < floor[i].length; j++) {
                String name = floor[i][j];
                String str = (i + 1) + "0" + (j + 1) + " " + (name == null ? "empty" : name) + "\t";
                System.out.print(str);
            }
            System.out.println();
        }
    }
}

输出如下:
第1层:101 lucy                102 mike        103 bob         104 empty       
第2层:201 lily                202 empty        203 jack       
第3层:301 empty        302 tom         303 empty        304 empty        305 rose

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 18:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表