鱼C论坛

 找回密码
 立即注册
查看: 5373|回复: 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
  1. public class Demo{

  2.     public static void main(String[] args) {

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

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

  6.         //第一层
  7.         String[] firstLayer = new String[4];
  8.         //第二层
  9.         String[] secondLayer = new String[3];
  10.         //第三层
  11.         String[] thirdLayer = new String[5];

  12.         floor[0] = firstLayer;
  13.         floor[1] = secondLayer;
  14.         floor[2] = thirdLayer;

  15.         //当天一层入住情况
  16.         firstLayer[0] = "lucy";
  17.         firstLayer[1] = "mike";
  18.         firstLayer[2] = "bob ";
  19.         firstLayer[3] = null;

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

  24.         //当天三层入住情况
  25.         thirdLayer[0] = null;
  26.         thirdLayer[1] = "tom ";
  27.         thirdLayer[2] = null;
  28.         thirdLayer[3] = null;
  29.         thirdLayer[4] = "rose";

  30.         //打印当天入住情况
  31.         for (int i = 0; i < floor.length; i++) {
  32.             System.out.print("第" + (i + 1) + "层:");
  33.             for (int j = 0; j < floor[i].length; j++) {
  34.                 String name = floor[i][j];
  35.                 String str = (i + 1) + "0" + (j + 1) + " " + (name == null ? "empty" : name) + "\t";
  36.                 System.out.print(str);
  37.             }
  38.             System.out.println();
  39.         }
  40.     }
  41. }
复制代码


输出如下:
第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

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-9-1 21:58:32 | 显示全部楼层
这里面的数据时固定的嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-2 19:18:31 | 显示全部楼层
不是,房客是每天在变的,表格里是当天的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-3 10:44:17 | 显示全部楼层
因为你只是打印当前楼层的住户,而每层楼的房间数不一样,所以我按最大的房间数来定义数组,代码如下:
  1. //规定楼层,三层,因每层人数不一样,故第二个按最多人数定
  2.         String[][] str = new String[3][5];
  3.         str[0][0] = "A";
  4.         str[0][1] = "B";
  5.         str[0][2] = "C";
  6.         str[0][3] = "D";
  7.         str[1][0] = "E";
  8.         str[1][1] = "F";
  9.         str[1][2] = "G";
  10.         str[2][0] = "H";
  11.         str[2][1] = "I";
  12.         str[2][2] = "J";
  13.         str[2][3] = "K";
  14.         str[2][4] = "L";
  15.         for (int i = 2; i >= 0; i--) {
  16.             if (i == 0) {
  17.                 System.out.println("第一层");
  18.                 for (int j = 0; j < 4; j++) {
  19.                     System.out.print(str[i][j] + " ");
  20.                 }
  21.                 System.out.println();
  22.             }
  23.             if (i == 1) {
  24.                 System.out.println("第二层");
  25.                 for (int j = 0; j < 3; j++) {
  26.                     System.out.print(str[i][j] + " ");
  27.                 }
  28.                 System.out.println();
  29.             }
  30.             if (i == 2) {
  31.                 System.out.println("第三层");
  32.                 for (int j = 0; j < 5; j++) {
  33.                     System.out.print(str[i][j] + " ");
  34.                 }
  35.                 System.out.println();
  36.             }
  37.         }
复制代码

运行结果如下:
图片1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-3 10:45:05 | 显示全部楼层
不知道你想要的是不是这种的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  2.     public static void main(String[] args) {

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

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

  6.         //第一层
  7.         String[] firstLayer = new String[4];
  8.         //第二层
  9.         String[] secondLayer = new String[3];
  10.         //第三层
  11.         String[] thirdLayer = new String[5];

  12.         floor[0] = firstLayer;
  13.         floor[1] = secondLayer;
  14.         floor[2] = thirdLayer;

  15.         //当天一层入住情况
  16.         firstLayer[0] = "lucy";
  17.         firstLayer[1] = "mike";
  18.         firstLayer[2] = "bob ";
  19.         firstLayer[3] = null;

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

  24.         //当天三层入住情况
  25.         thirdLayer[0] = null;
  26.         thirdLayer[1] = "tom ";
  27.         thirdLayer[2] = null;
  28.         thirdLayer[3] = null;
  29.         thirdLayer[4] = "rose";

  30.         //打印当天入住情况
  31.         for (int i = 0; i < floor.length; i++) {
  32.             System.out.print("第" + (i + 1) + "层:");
  33.             for (int j = 0; j < floor[i].length; j++) {
  34.                 String name = floor[i][j];
  35.                 String str = (i + 1) + "0" + (j + 1) + " " + (name == null ? "empty" : name) + "\t";
  36.                 System.out.print(str);
  37.             }
  38.             System.out.println();
  39.         }
  40.     }
  41. }
复制代码


输出如下:
第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

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-15 08:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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