You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建带表头的含数字与字符的数组表格?Java实现咨询

解决Java中存储多字符表格数据的问题

你遇到的核心问题是:char[][]数组只能存储单个字符,但你需要存储的是字符串类型的数据(比如"01"、"Dr.Ali"、"8-10 p.m"),所以char数组完全不适合这个场景。下面给你两种实用的解决方案:

方案1:用String[][]二维数组快速实现表格

直接用字符串数组存储每一行的完整数据,再搭配格式化输出就能得到整齐的表格:

public class DoctorSchedule {
    public static void main(String[] args) {
        // 定义表头
        String[] headers = {"No.Room", "Doctor Name", "Time"};
        // 定义表格数据,每一行对应一个预约项
        String[][] schedule = {
                {"01", "Dr.Ali", "8-10 p.m"},
                {"02", "Dr.Sara", "1-3 p.m"},
                {"03", "Dr.Nora", "3-5 p.m"},
                {"04", "Dr.Ryan", "10-12 a.m"},
                {"05", "Dr.Mia", "3-5 p.m"}
        };

        // 打印表头,用格式化输出保证列对齐
        for (String header : headers) {
            System.out.printf("%-15s", header);
        }
        System.out.println();

        // 打印分隔线(可选,让表格更清晰)
        System.out.println("---------------------------------------------");

        // 打印表格内容
        for (String[] row : schedule) {
            for (String cell : row) {
                System.out.printf("%-15s", cell);
            }
            System.out.println();
        }
    }
}

代码说明:

  • String[][]可以直接存储任意长度的字符串,完美适配你的需求
  • %-15s是格式化输出语法,表示左对齐、占15个字符宽度,能让表格列对齐更整齐
  • 表头和数据分开定义,逻辑更清晰易维护

方案2:用自定义类(面向对象的规范写法)

如果后续需要扩展功能(比如修改医生信息、添加预约),创建一个类封装数据会更灵活:

class DoctorAppointment {
    private String roomNumber;
    private String doctorName;
    private String timeSlot;

    // 构造方法,初始化预约信息
    public DoctorAppointment(String roomNumber, String doctorName, String timeSlot) {
        this.roomNumber = roomNumber;
        this.doctorName = doctorName;
        this.timeSlot = timeSlot;
    }

    // 打印当前预约的格式化信息
    public void printInfo() {
        System.out.printf("%-15s%-15s%-15s%n", roomNumber, doctorName, timeSlot);
    }

    // 可选:添加getter/setter方法,方便后续修改或获取数据
    public String getRoomNumber() {
        return roomNumber;
    }

    public void setRoomNumber(String roomNumber) {
        this.roomNumber = roomNumber;
    }
}

public class DoctorSchedule {
    public static void main(String[] args) {
        // 打印表头
        System.out.printf("%-15s%-15s%-15s%n", "No.Room", "Doctor Name", "Time");
        System.out.println("---------------------------------------------");

        // 创建预约对象列表
        DoctorAppointment[] appointments = {
                new DoctorAppointment("01", "Dr.Ali", "8-10 p.m"),
                new DoctorAppointment("02", "Dr.Sara", "1-3 p.m"),
                new DoctorAppointment("03", "Dr.Nora", "3-5 p.m"),
                new DoctorAppointment("04", "Dr.Ryan", "10-12 a.m"),
                new DoctorAppointment("05", "Dr.Mia", "3-5 p.m")
        };

        // 遍历打印所有预约信息
        for (DoctorAppointment appt : appointments) {
            appt.printInfo();
        }
    }
}

为什么不适合用char[][]?

你之前的代码用char[][]只能存单个字符,比如房间号"01"需要两个char,医生姓名"Dr.Ali"需要多个char,拼接和存储都会非常繁琐——Java提供了String类型专门处理多字符文本,直接用它就好啦。

内容的提问来源于stack exchange,提问作者adina lokman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 17:30:41