有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中的交替模式

您好,我正在尝试找出如何在java中创建以下模式

 xoxox
 oxoxo
 xoxox

我最近在学习,几个小时来一直在努力解决这个问题。这是我目前掌握的代码。这主要与下面的最后一部分有关 公共静态字符串textBoxString(int行、int列、字符c1、字符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;
    }
}

共 (2) 个答案

  1. # 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;
    }
    
  2. # 2 楼答案

    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 o x x o xoxox