java - 如何在 Java 中打印二维锯齿状数组周围的边框
问题描述
我需要在像这样的二维锯齿状数组周围放置一个边框:
{' ', ' ', ' '}
{' ', ' ', ' '}
{' ', ' ', ' ', ' '}
{' ', ' ', ' ', ' '}
{' ', ' ', ' ', ' ', ' '}
要打印如下所示的内容:
*****
* *
* *
* *
* *
* *
*******
我想我从第一行开始:
for (int i = 0; i < a.length; i++) {
System.out.print('*');
}
但我被难住了(如果它甚至是正确的)。我怎么能在数组的维度之间打印?
谢谢
解决方案
我们可以通过打印上边框,然后打印中间内容,最后打印下边框来处理这个问题。这里的诀窍是我们实际上不必担心超出数组的索引。对于模式的中间部分,我们只是迭代数组的边界,并在两侧附加一个边框。除了第一个和最后一个锯齿状一维数组的大小外,顶部和底部边框实际上并不涉及数组内容。
for (int i=0; i <= array[0].length + 1; ++i) {
System.out.print("*");
}
System.out.println();
for (int r=0; r < array.length; ++r) {
System.out.print("*");
for (int c=0; c < array[r].length; ++c) {
System.out.print(array[r][c]);
}
System.out.println("*");
}
for (int i=0; i <= array[array.length-1].length + 1; ++i) {
System.out.print("*");
}
*****
* *
* *
* *
* *
* *
*******
推荐阅读
- node.js - 如何使用 Hapi-MongoDB 集成 GEJSON
- sql - 从 BigQuery 中的表中删除重复的 ID
- vue.js - vue和vuex购物车数量更新问题?
- windows - 虚幻:诊断 Windows 无法加载 DLL 的原因
- php - 如何显示来自 sqlite db 和动画的最新数据以查看更多信息?
- reactjs - React Select 选择后保留输入值
- swift - Swift 5 中的自定义 TEST 预处理器宏
- phabricator - 是否有 API 可以获取差异修订的审核状态?
- reactjs - 在 React 组件中使用 document.getElementById() 是否可以接受?
- javascript - 如何按值比较两个表