Java程序中如何为查询结果列间添加|分隔线?循环逻辑是什么?
实现Java结果集的竖线分隔列输出
没问题,我来帮你调整这段代码,实现你想要的竖线分隔列格式,同时给你讲清楚循环逻辑的变化(其实核心遍历逻辑不用改,只是输出格式换了~)
修改后的完整代码
// 表头改成带竖线和空格的规整格式 System.out.println("| EMPO | ENAME | SAL | AVERAGE |"); // 分隔线对应表头长度,保持视觉对齐 System.out.println("|---------------------------|"); while(rs.next()) { int eno = rs.getInt("empo"); String ename = rs.getString("ename"); int sal = rs.getInt("sal"); int avg = rs.getInt("average"); // 用String.format统一格式化每行输出,确保竖线分隔的一致性 System.out.println(String.format("| %d | %s | %d | %d |", eno, ename, sal, avg)); }
关键修改点说明
- 表头调整:直接把原来的制表符分隔改成
| 列名 |的格式,每个列名前后加空格,首尾也加上竖线,形成规整的表头样式。 - 分隔线优化:把原来的纯横线改成带首尾竖线的样式,长度和表头对应,视觉上更整齐。
- 循环内输出改造:用
String.format拼接每行内容比直接用+更清晰,每个字段都被|和|包裹,最终形成和表头一致的竖线分隔格式。
循环逻辑说明
原来的while(rs.next())遍历逻辑完全不需要改动:
rs.next()会每次移动结果集的游标到下一行,如果还有数据就返回true,进入循环体;如果没有更多数据就返回false,结束循环。- 循环内依旧是取出当前行的四个字段值,只是把输出格式从制表符分隔换成了竖线分隔而已,核心的遍历和数据读取逻辑保持不变。
如果想要让列对齐更美观(比如不同长度的ename不会打乱格式),可以给String.format的占位符指定宽度,比如把%s改成%-10s(左对齐,占10个字符宽度),这样输出会更规整:
System.out.println(String.format("| %-4d | %-10s | %-4d | %-7d |", eno, ename, sal, avg));
内容的提问来源于stack exchange,提问作者Harshdeep Saiyam
相关产品推荐
相关产品推荐

