
本文讲解如何将 java 中按行存储的二维字符串数组(如 [["cat","dog","mouse"],["chair","bench","stool"]])转置并格式化输出为列对齐的表格形式,实现“猫—椅子”“狗—长凳”等垂直对应排列。
本文讲解如何将 java 中按行存储的二维字符串数组(如 [["cat","dog","mouse"],["chair","bench","stool"]])转置并格式化输出为列对齐的表格形式,实现“猫—椅子”“狗—长凳”等垂直对应排列。
在 Java 中,默认按行遍历二维数组(myList[i][j])会逐行输出所有元素,但本例需求是按列组织显示——即第一列输出 "cat" 和 "chair" 并排,第二列输出 "dog" 和 "bench",依此类推。这本质上是将原数组逻辑上“转置”后打印:原数组有 2 行 × 3 列,目标输出为 3 行 × 2 列。
关键在于调整循环逻辑:
- 外层循环控制列索引
i(范围0到myList[0].length - 1),确保覆盖所有列(此处为 3 列); - 内层循环控制行索引
j(范围0到myList.length - 1),遍历每列中的各行(此处为 2 行); - 使用
System.out.printf("%-8s", myList[j][i])实现左对齐、固定宽度(8 字符)的格式化输出,保证各列纵向对齐; - 每次内层循环结束后调用
System.out.println()换行,形成一行一“组”的视觉结构。
完整可运行示例代码如下:
String[][] myList = {{"cat", "dog", "mouse"}, {"chair", "bench", "stool"}};
// 按列优先遍历并格式化打印
for (int i = 0; i <p>输出结果:</p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill12835" title="JavaScript 测试模式"><img
src="https://img.php.cn/upload/skill/001/246/273/6adaf20cf0281539.jpg" alt="JavaScript 测试模式" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill12835" title="JavaScript 测试模式" class="overflowclass">JavaScript 测试模式</a>
<p class="overflowclass">使用 Jest、Vitest 和 Testing Library 实施全面的测试策略,包括单元测试、集成测试和端到端测试,涵盖模拟、测试夹具和测试驱动开发。在编</p>
</div>
<a rel="nofollow" href="/xiazai/skill12835" title="JavaScript 测试模式" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div><pre class="brush:php;toolbar:false;">cat chair
dog bench
mouse stool
⚠️ 注意事项:
- 此方法要求二维数组为规则矩形结构(每行长度一致),否则
myList[0].length可能引发ArrayIndexOutOfBoundsException;若需兼容不规则数组,应改用myList[i] != null ? myList[i].length : 0动态判断; -
%-8s中的-表示左对齐,8是最小字段宽度,若字符串超长则自动扩展,不影响对齐逻辑; - 若需首字母大写(如
"Cat"),可在打印前调用Character.toUpperCase()和substring()进行转换,例如:myList[j][i].substring(0,1).toUpperCase() + myList[j][i].substring(1); - 替代方案:也可先构建
StringBuilder拼接每行,再统一输出,有利于复杂格式控制或日志记录。
掌握这种“行列角色互换”的循环思维,是处理矩阵转置、表格渲染、CSV 行列转换等场景的基础能力。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










