Java 字符串方形模式

用户输入一个字符串,然后方法绘制一个正方形。例如:

  • 对于 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)),但我不知道如何使它看起来像上面的示例。如何升级我的代码以正确绘制正方形?


MYYA
浏览 173回答 2
2回答

阿波罗的战车

static void pattern(String n) {&nbsp; &nbsp; &nbsp; &nbsp; int len = n.length();for (int i = 0; i < len; i++) {&nbsp; &nbsp; for (int j = 0; j < len; j++) {&nbsp; &nbsp; &nbsp; &nbsp; if((i<j)&&(i>len-j-1) || (i>j)&&(i<len-j-1)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.printf("- ");&nbsp; &nbsp; &nbsp; &nbsp; } else&nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.printf("%c ", n.charAt(i));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; System.out.printf("%n");}第一个条件&nbsp;(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 xx x x x x x x和&nbsp;(i>j)&&(i<len-j-1)选择以下部分x x x x x x xx 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

波斯汪

您可以使用双循环来打印二维数组。只需-根据 raw 的索引计算 raw 开头和结尾的数量。public static void pattern(String str) {&nbsp; &nbsp; for (int i = 0, last = str.length() - 1; i <= last; i++) {&nbsp; &nbsp; &nbsp; &nbsp; for (int j = 0, dash = last; j <= last; j++, dash--)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print(i < j && i > dash || i > j && i < dash ? '-' : str.charAt(i));&nbsp; &nbsp; &nbsp; &nbsp; System.out.println();&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java