【发布时间】:2019-01-18 18:54:02
【问题描述】:
用户输入一个字符串,方法绘制一个正方形。 例如:
- 对于输入=
ram方法绘制:r r r- a -m m m
- 对于输入=
code方法绘制:c c c c- o o -- d d -e e e e
- 对于输入 =
coder方法绘制:c c c c c- o o o -- - d - -- e e e -r r r r r
到目前为止,我已经设法画出这样的东西:c - - - c- o - o -- - d - -- e - e -r - - - r
使用此代码:
static void pattern(String n) {
int len = n.length();
for (int i = 0; i < len; i++) {
for (int j = 0; j < len; j++) {
if((i==j)||(i==len-j-1)) {
System.out.printf("%c ", n.charAt(i));
} else {
System.out.printf("- ");
}
}
System.out.printf("%n");
}
}
我只设法使用if((i==j)||(i==len-j-1)) 进行对角线打印,但我不知道如何使它看起来像上面的示例。如何升级代码以正确绘制正方形?
【问题讨论】:
-
您正确找到了应该打印字符的边界,但您准确地确定了边界,但跳过了它们之间的所有内容。这些范围内的任何元素都比左边界大,比右边界小。但考虑到中心边界正在切换,因此您可以尝试找到最小/最大边界作为左/右边界。