为了账号安全,请及时绑定邮箱和手机立即绑定

Java 字符串方形模式

Java 字符串方形模式

MYYA 2022-05-12 16:45:54
用户输入一个字符串,然后方法绘制一个正方形。例如:对于 input=ram方法绘制:r r r- a -m m m对于 input=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)),但我不知道如何使它看起来像上面的示例。如何升级我的代码以正确绘制正方形?
查看完整描述

2 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

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


查看完整回答
反对 回复 2022-05-12
?
波斯汪

TA贡献1811条经验 获得超4个赞

您可以使用双循环来打印二维数组。只需-根据 raw 的索引计算 raw 开头和结尾的数量。


public static void pattern(String str) {

    for (int i = 0, last = str.length() - 1; i <= last; i++) {

        for (int j = 0, dash = last; j <= last; j++, dash--)

            System.out.print(i < j && i > dash || i > j && i < dash ? '-' : str.charAt(i));


        System.out.println();

    }

}


查看完整回答
反对 回复 2022-05-12
  • 2 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信