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

时间:2015-02-14 06:57:40

标签: java string class oop

尝试在JOptionPane对话框中打印出一些星星。 现在我有一个void函数在我的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循环中生成那些输出语句并让它们作为类字符串返回?

1 个答案:

答案 0 :(得分:2)

您需要做的就是返回一个String而不是使用void-method,而您以前用于打印的地方只需将它附加到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();
}