用户输入一个字符串,方法绘制一个正方形。 例如:
- 对于 input=
ram
方法绘制:
r r r
-a-
米米
- 对于 input=
code
方法绘制:
c c c c
-o o-
- d d -
e e e e
- 对于 input =
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))
进行对角打印,但我不知道如何能够使它看起来像上面的例子。如何升级我的代码以正确绘制正方形?
最佳答案
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) || (i>j)&&(i<len-j-1)) {
System.out.printf("- ");
} else {
System.out.printf("%c ", n.charAt(i));
}
}
System.out.printf("%n");
}
第一个条件
(i>j)&&(i<len-j-1)
选择以下部分
x x x x x x x
- x x x x x x
- - x x x x x
- - - x x x x
- - x x x x x
- x x x x x x
x x x x x x x
和
(i>j)&&(i<len-j-1)
选择以下部分
x x x x x x x
x x x x x x -
x x x x x - -
x x x x - - -
x x x x x - -
x x x x x x -
x x x x x x x
关于Java 字符串方形图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54259911/