0

写一些简单ASCII的东西,现在基本上只是为每个像素打印一个具有定义宽度和高度的字符。

我有一个 for 循环,将字符添加到字符串中,并在达到宽度时添加“\n”,以便宽度和高度正确。

但是它目前在第一行打印太多,在最后一行打印太少有什么想法吗?

将此传递给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;
}

这是我的输出

…………………………………………………………………………………………………………………………………………………………………………………………

好吧,这些点的每个块都应该在不同的行上,但由于某种原因,它把它们排成一行,无论如何你仍然可以看到第一行有 8 个,最后一行有 6 个?

4

1 回答 1

2

只需将您的新行追加到循环中:

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

你绝对应该使用 aStringBuilder来构建字符串。

于 2013-02-15T11:30:02.840 回答