Java 转换ArrayList<;对象>;串

Java 转换ArrayList<;对象>;串,java,arraylist,tostring,Java,Arraylist,Tostring,大家好,我正在尝试练习java,我才刚刚开始! 为了练习,我正在尝试构建一个简单的扑克游戏,但却被卡的数组列表卡住了。我试图打印出来,但只有地址被输出到控制台,当然我尝试使用.toString方法并创建自己的toString方法来尝试检查数组列表是否正确输入。Bellow是我的Card类,有一个Arraylist{Card}组。下面是我的密码 package poker; import java.util.ArrayList; public class Card { private

大家好,我正在尝试练习java,我才刚刚开始! 为了练习,我正在尝试构建一个简单的扑克游戏,但却被卡的数组列表卡住了。我试图打印出来,但只有地址被输出到控制台,当然我尝试使用.toString方法并创建自己的toString方法来尝试检查数组列表是否正确输入。Bellow是我的Card类,有一个Arraylist{Card}组。下面是我的密码

package poker;

import java.util.ArrayList;

public class Card {
    private String _suit;
    private int _cardNum;

    public Card(int cardNum, String suit) {
        _suit = suit;
        _cardNum = cardNum;
    }
    public String toString() {
        return _suit +_cardNum;
    }

    static ArrayList<`enter code here`Card> Deck = new ArrayList<Card>() {{
        add(new Card(0,"Hearts"));
        add(new Card(1,"Hearts"));
        add(new Card(1,"Hearts"));
        add(new Card(2,"Hearts"));
        add(new Card(3,"Hearts"));
        add(new Card(4,"Hearts"));
        add(new Card(5,"Hearts"));
        add(new Card(6,"Hearts"));
        add(new Card(7,"Hearts"));
        add(new Card(8,"Hearts"));
        add(new Card(9,"Hearts"));
        add(new Card(10,"Hearts"));
        add(new Card(11,"Hearts"));
        add(new Card(12,"Hearts"));
        add(new Card(13,"Hearts"));
        add(new Card(0,"Spades"));
        add(new Card(1,"Spades"));
        add(new Card(2,"Spades"));
        add(new Card(3,"Spades"));
        add(new Card(4,"Spades"));
        add(new Card(5,"Spades"));
        add(new Card(6,"Spades"));
        add(new Card(7,"Spades"));
        add(new Card(8,"Spades"));
        add(new Card(9,"Spades"));
        add(new Card(10,"Spades"));
        add(new Card(11,"Spades"));
        add(new Card(12,"Spades"));
        add(new Card(13,"Spades"));
        add(new Card(0,"Clubs"));
        add(new Card(1,"Clubs"));
        add(new Card(2,"Clubs"));
        add(new Card(3,"Clubs"));
        add(new Card(4,"Clubs"));
        add(new Card(5,"Clubs"));
        add(new Card(6,"Clubs"));
        add(new Card(7,"Clubs"));
        add(new Card(8,"Clubs"));
        add(new Card(9,"Clubs"));
        add(new Card(10,"Clubs"));
        add(new Card(11,"Clubs"));
        add(new Card(12,"Clubs"));
        add(new Card(13,"Clubs"));
        add(new Card(0,"Diamonds"));
        add(new Card(1,"Diamonds"));
        add(new Card(2,"Diamonds"));
        add(new Card(3,"Diamonds"));
        add(new Card(4,"Diamonds"));
        add(new Card(5,"Diamonds"));
        add(new Card(6,"Diamonds"));
        add(new Card(7,"Diamonds"));
        add(new Card(8,"Diamonds"));
        add(new Card(9,"Diamonds"));
        add(new Card(10,"Diamonds"));
        add(new Card(11,"Diamonds"));
        add(new Card(12,"Diamonds"));
        add(new Card(13,"Diamonds"));
    }};
}
package扑克;
导入java.util.ArrayList;
公务舱卡{
私服;
私人国际卡德纳姆;
公共卡(int cardNum,字符串套装){
_西装=西装;
_cardNum=cardNum;
}
公共字符串toString(){
返回_suit+_cardNum;
}
静态ArrayList组=新ArrayList(){{
添加(新卡(0,“红心”);
添加(新卡(1个“红心”);
添加(新卡(1个“红心”);
添加(新卡(2个“红心”);
添加(新卡(3个“红心”);
添加(新卡(4个“红心”);
添加(新卡(5个“红心”);
添加(新卡(6个“红心”);
添加(新卡(7个“红心”);
添加(新卡(8个“红心”);
添加(新卡(9个“红心”);
添加(新卡(10个“红心”);
添加(新卡(11个“红心”);
添加(新卡(12个“红心”);
添加(新卡(13个“红心”);
添加(新卡(0,“黑桃”);
添加(新卡(1个“黑桃”);
添加(新卡(2个“黑桃”);
添加(新卡(3个“黑桃”);
添加(新卡(4个“黑桃”);
添加(新卡(5个“黑桃”);
添加(新卡(6个“黑桃”);
添加(新卡(7个“黑桃”);
添加(新卡(8个“黑桃”);
添加(新卡(9个“黑桃”);
添加(新卡(10个黑桃);
添加(新卡(11个“黑桃”);
添加(新卡(12个“黑桃”);
添加(新卡(13个“黑桃”);
添加(新卡(0,“俱乐部”);
增加(新卡(1,“俱乐部”);
增加(新卡(2个“俱乐部”);
增加(新卡(3个,“俱乐部”);
增加(新卡(4个,“俱乐部”);
增加(新卡(5个,“俱乐部”);
增加(新卡(6个,“俱乐部”);
增加(新卡(7个,“俱乐部”);
增加(新卡(8个“俱乐部”);
增加(新卡(9,“俱乐部”);
增加(新卡(10个,“俱乐部”);
增加(新卡(11,“俱乐部”);
增加(新卡(12个,“俱乐部”);
增加(新卡(13个,“俱乐部”);
添加(新卡(0,“钻石”);
添加(新卡(1“钻石”);
添加(新卡(2个“钻石”);
添加(新卡(3个“钻石”);
添加(新卡(4个“钻石”);
添加(新卡(5个“钻石”);
添加(新卡(6个“钻石”);
添加(新卡(7个“钻石”);
添加(新卡(8个“钻石”);
添加(新卡(9“钻石”);
添加(新卡(10个“钻石”);
添加(新卡(11“钻石”);
添加(新卡(12个“钻石”);
添加(新卡(13个“钻石”);
}};
}
还有我的主应用程序

package poker;

import java.util.Random;
import static java.lang.System.out;

public class MainApp {

    public static void main(String[] args) {
        for(int i = 0;i <Card.Deck.size();i++) {
            out.println(Card.toString());

        }
    }
}

package扑克;
导入java.util.Random;
导入静态java.lang.System.out;
公共类MainApp{
公共静态void main(字符串[]args){
对于(int i=0;i由于
toString()
不是静态方法,您需要在类的实例上调用它。因此,在MainApp中将
out.println(Card.toString());
行更改为
out.println(Card.Deck.get(i.toString());


另一方面,我注意到你每件衣服有14张卡片,我认为这是无意的。

你能试试下面的吗?它应该打印ArrayList的所有字符串内容

System.out.println(Card.Deck); 
差不多

[Hearts0,Hearts1,Hearts1,Hearts2,Hearts3,Hearts4,Hearts5, 心6,心7,心8,心9,心10,心11,心12, 心脏13号,黑桃0号,黑桃1号,黑桃2号,黑桃3号,黑桃4号,黑桃5号, 黑桃6,黑桃7,黑桃8,黑桃9,黑桃10,黑桃11,黑桃12, 黑桃13号,棍棒0号,棍棒1号,棍棒2号,棍棒3号,棍棒4号,棍棒5号,棍棒6号, 俱乐部7,俱乐部8,俱乐部9,俱乐部10,俱乐部11,俱乐部12,俱乐部13,钻石0, 钻石1,钻石2,钻石3,钻石4,钻石5,钻石6, 钻石7,钻石8,钻石9,钻石10,钻石11,钻石12, 钻石13]


您看到的错误是什么

我看到的最大问题是for循环没有使用索引来取消对Deck数组成员的引用:

for(int i = 0;i <Card.Deck.size();i++) {
            out.println(Card.toString());

        }
如上所述,有一种更简单的方法可以打印卡片组中的每张卡片:使用迭代器快捷方式
for
,而不是试图将arraylist视为数组:

    public void printDeck() {
        for(Card card : Card.Deck) {
            out.print(card.toString());
        }
    }
您的Card.toString()未引用卡片组对象中的卡片。您要做的是从卡片组对象打印卡片的字符串值。如果您使用的是Java 8,则可以使用以下代码:


Card.Deck.forEach(Card->System.out.println(Card.toString());

ArrayList有toString()函数是的,我只是想在花时间修改列表之前弄清楚字符串的情况!谢谢!完美!这真的很有帮助!谢谢!你能接受我的答案吗?谢谢!
    public void printDeck() {
        for(Card card : Card.Deck) {
            out.print(card.toString());
        }
    }