Чередование шаблонов в Java - PullRequest
0 голосов
/ 22 февраля 2019

Здравствуйте, пытаясь понять, как создать следующий шаблон в java

 xoxox
 oxoxo
 xoxox

Я недавно учился и пытался выяснить это часами.Вот код, который у меня есть до сих пор.Это в основном связано с последней частью публичной статической строки String textBoxString (int row, 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;
    }
}

1 Ответ

0 голосов
/ 22 февраля 2019

Я обновил эту функцию ниже:

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;
}
...