将输出语句转换为字符串类型的方法?
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();
}
正在尝试在 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();
}