java,for循环帮助非常基本的ASCII控制台输出

时间:2013-02-15 11:25:20

标签: java for-loop ascii

编写一些简单的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个?

1 个答案:

答案 0 :(得分:2)

只需将你的换行符添加到循环中:

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

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