如何使两个字符行交替以创建矩形JAVA

问题描述 投票:0回答:3

我的代码使用2个输入数字来创建矩形的行和列。在该矩形中,用户选择2个字母作为矩形主体,但它们必须交替显示,如下所示:(不带破折号ofc)

-xxxxx-r r r r r r-xxxxx-r r r r r r

[每当我尝试使它们交替显示时,这些行通常以“ xrxrx”或“ xrrrr”而不是单个字母结尾。我尝试将它们添加为“ filler.append(firstLetter + secLetter);”但这只是数字。这可能是一个非常简单的解决方案,但我只是看不到它,哈哈...(·_·;)任何提示将不胜感激,谢谢!

public static void recDraw ( int rows, int columns, char firstLetter, char secLetter){
        StringBuilder filler = new StringBuilder();
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < columns; j++) {
                filler.append(firstLetter);
                filler.append(secLetter);
            }
            filler.append('\n');
        }
        System.out.println(filler);
    }
java newline rectangles drawrectangle alternate
3个回答
1
投票
public static void rectDraw(String ch1, String ch2, int cols, int rows) {
    String rect = "";
    for (int i = 0; i < rows; i++) {
        String line = "";
        for (int j = 0; j < cols; j++) {
            if (i % 2 == 0) {
                line += ch1;
            }
            else {
                line += ch2;
            }
        }
        rect += line + "\n";
    }
    System.out.println(rect);
}

这可以解决您的问题。您将需要研究模运算符,以获取有关其工作原理的更多信息。您可以看一下here


0
投票

尝试打印i和j的值,您将得到错误的地方。

for (int i = 0; i < rows; i++) {
            for (int j = 0; j < columns; j++) {
                filler.append(firstLetter);
                filler.append(secLetter);
            }
            filler.append('\n');
        }

在上面的代码段中添加一个检查项,如果>>

我是偶数,然后先添加字母

i是奇数,然后添加secondLetter


0
投票

在内部循环中(带有计数器j),在将字母附加到StringBuilder填充符之前,通过对i值使用模运算来检查它是Fistletter行还是SecondLetter行。使用'i'值是因为它表示行/行。

© www.soinside.com 2019 - 2024. All rights reserved.