-3

你好,试图弄清楚如何在java中制作以下模式

 xoxox
 oxoxo
 xoxox

我最近在学习,并试图弄清楚几个小时。这是我到目前为止的代码。主要是public static String textBoxString(int rows, int cols, char c1, char c2) 下的最后一部分

public class TextBoxTester {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String s = TextBox.textBoxString(3);
        System.out.println(s);

        s = TextBox.textBoxString(4, '+');
        System.out.println(s);

        s = TextBox.textBoxString(3, 4);
        System.out.println(s);

        s = TextBox.textBoxString(3, 5, 'x', 'o');
        System.out.println(s);

    }
}

public class TextBox {

    public static String textBoxString(int side) {
        String s = "";
        for (int i = 0; i < side; i++) {
            for (int j = 0; j < side; j++)
                s += "*";
            s += "\n";
        }
        return s;
    }

    public static String textBoxString(int side, char bChar) {
        String s = "";
        for (int i = 0; i < side; i++) {
            for (char j = 39; j < bChar; j++)
                s += bChar;
            s += "\n";
        }
        return s;
    }

    public static String textBoxString(int rows, int cols) {
        String s = "";
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++)
                s += "*";
            s += "\n";
        }
        return s;
    }

    public static String textBoxString(int rows, int cols, char c1, char c2) {
        char c = c1;
        char d = c2;
        String s = "";
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++)
                s += c;
                    if (c == c1) {
                        c2++;
                    } else {
                        c1 = c;
                    }
                    s += "\n";
        }
        return s;
    }
}
4

2 回答 2

1

我在下面更新了这个功能:

public static String textBoxString(int rows, int cols, char c1, char c2) {
    String s = "";
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
                        // this is used for alternating columns
            if (j % 2 == 0) { // if j is even then append c1
                s += c1;
            } else {
                s += c2; // // if j is odd then append c2
            }
        }

                // this is used for alternating rows
        char tmp = c1;
        if (i % 2 == 0) { // switch the values of c1 and c2
                c1 = c2;
            c2 = tmp;
        } else { // switch the values of c1 and c2
            tmp = c2;
            c2 = c1;
            c1 = tmp;
        }

        s += "\n";
    }
    return s;
}
于 2019-02-22T02:13:44.403 回答
0
public static String textBoxString(int rows, int cols, char c1, char c2) {

        String s = "";

        for (int i = 0; i < rows; i++) {

            if (i == 0 || i == rows - 1) {
                for (int j = 0; j < cols; j++) {
                    // this is used for alternating columns
                    if (j % 2 == 0) { // if j is even then append c1
                        s += c1;
                    } else {
                        s += c2; // // if j is odd then append c2
                    }
                }

            } else {

                // this is used for alternating rows
                char tmp = c1;
                if (i % 2 == 0) { // switch the values of c1 and c2
                    c1 = c2;
                    c2 = tmp;
                } else { // switch the values of c1 and c2
                    tmp = c2;
                    c2 = c1;
                    c1 = tmp;
                }

                s += c1;

                for (int j = 0; j < cols - 2; j++) {

                    s += " ";
                }

                s += c2;
            }

            s += "\n";
        }

        return s;
    }

输出: xoxox ox xo xoxox

于 2020-10-07T05:30:40.323 回答