system.out of object to string

时间:2014-12-07 15:34:53

标签: java joptionpane string-concatenation system.out

Java非常新,所以感谢所有帮助,但请尽可能给出更直接的答案。

我正在尝试将System.out.println语句更改为将在JOptionPane中显示的语句。这是我第一次尝试使用GUI,发现自己绝望地失败了。

我通过几种方法打印字符串,以显示一个输出片段。输出的一部分我想放在一个窗格中,所以我认为最简单的方法可能是连接一个字符串。

我有一个坚持Card值的ArrayList。我在卡片中为队列重载了toString方法,并且卡片使用的套装枚举返回字符串(“Heart”,“Spade”等)

for(int x = 0; x < hand.size(); x++){
    System.out.println(hand.get(x));
} //correctly prints the code
我试图这样做         String handString =“”;

    for(int x = 0; x < hand.size(); x++){
        handString = handString.concat(hand.get(x)); //also tried concat(toString(hand.get(x))
    }

任何人都可以告诉我为什么我无法更改Card toString以及为什么它会打印到控制台,但为什么我不能把它放到字符串中?我有一种感觉,这是非常明显的,但我在网上找不到任何东西似乎有助于我的枚举和类对象的组合。

另外,我如何将多个打印件转到控制台,再到JOptionPane中的一个打印?

2 个答案:

答案 0 :(得分:1)

你可以尝试:

for(int x = 0; x < hand.size(); x++){
   handString += hand.get(x);
   handString += "\n"; 
}

加号(+)运算符负责转换为String(对象使用toString()方法 - 已覆盖)。

你也可以在这里使用foreach循环(更短,个人偏好):

for (Card card : hand) {
    handString += card;
    handString += "\n";
}

答案 1 :(得分:0)

您可能希望在Card-object上显式调用.toString()

for(int x = 0; x < hand.size(); x++){
    handString = handString.concat(hand.get(x).toString());
}

之后,当然,您还需要更新与handString相关的任何内容。


清洁版:

for (Card c : hand) {
    handString += c;
}