0

ASCII基本的に今のところ、定義された幅と高さで各ピクセルの文字を出力するだけの簡単なものを書きます。

文字列に文字を追加し、幅と高さが正しくなるように幅に達すると「\n」を追加するforループがあります。

ただし、現在、最初の行に1つ多すぎ、最後の行に1つ少なすぎるアイデアを印刷していますか?

これをに渡すmethod ('.', 7,5)

private String format(char character, int width, int height)
{
    char[] picture = new char[width * height];
    String pic = "";

    for(int i = 0; i < width * height; i++)
    {
        picture[i] = character;
        pic += picture[i];

        if(i == width || i > width  && i % width == 0)
        {
            pic += "\n";

        }
    }
    return pic;
}

これが私の出力です

........ ....... ..................。

さて、これらのドットの各ブロックは異なる行にあることを意図していますが、何らかの理由でそれらを1行に配置すると、とにかく最初の行が8で、最後の行が6であることがわかりますか?

4

1 に答える 1

2

ループ内で改行を上に移動するだけです。

if(i > 0 && (i % width) == 0)
{
    pic += "\n";
}
picture[i] = character;
pic += picture[i];

StringBuilderストリングの作成には必ずを使用する必要があります。

于 2013-02-15T11:30:02.840 に答える