将输出语句转换为字符串类型的方法?

Way to turn output statements into string types?

正在尝试在 JOptionPane 对话框中打印一些星星。 现在我有一个 void 函数在我的 Star class:

中做 star 工作
public void setStars(){

    for (int j = 0; j < column; j++){
        if (j % 2 == 0)
            System.out.print("\n");

        else
            System.out.print("\n ");
        for(int i = 0; i < row; i++)
            System.out.print("* ");
    }
}

它按预期运行,但我似乎无法弄清楚如何将其实现到我已创建的对话框中,该对话框的设置如下:

String message = String.format("Knight Name: %s%n"
            + "Knight Health: %d%n"
            + "Knight Battles: %d%n"
            + "Knight Age: %d%n"
            + "Knight Gold: $%d%n",k1.getName(), k1.getHealth(),k1.getNumberBattles(),k1.getAge(),k1.getAmountGold());
JOptionPane.showMessageDialog(null, message);

任何可能的移动方式在 for 循环中制作这些输出语句并将它们 return 作为 class 字符串?

您需要做的就是 return 一个 String 而不是使用 void 方法,在您用于打印的地方,您只需将它附加到 StringBuilder。 PS: 使用 StringBuilder 而不是 String += ... 因为后者真的非常慢...

public String setStars(){

    StringBuilder sb = new StringBuilder();

    for (int j = 0; j < column; j++){
        if (j % 2 == 0)
            sb.append("\n");

        else
            sb.append("\n ");
        for(int i = 0; i < row; i++)
            sb.append("* ");
    }

    return sb.toString();
}