用自定义类替换arraylist中的输入值

时间:2016-03-03 19:39:16

标签: shuffle

用卡索引

替换userinput

显示在新行上,并未替换用户键入的实际数字。我试图将字母和数字放在同一个arraylist中,但我不知道如何显示这些。

2 个答案:

答案 0 :(得分:1)

我认为你应该用String secondCardLetter = card.getCardLetter();替换String secondCardLetter = deck.getCards(i);,否则第二张卡与第一张卡相同并让我知道

同时建议将ArrayList<Card> card = new ArrayList<Card>();替换为List<Card> cards = new ArrayList<Card>();,请注意变量名称因卡片集合而更改。用循环初始化卡座

    char A  = 'A';
    int repeats = 2, numOfCards = 8;
    for ( int i = 0; i<numOfCards;i++){
        for (int j = 0; j<repeats; j++){
            cards.add(new Card((char) ( A + i ) + "",i+1,""));
        }
    }

请注意您的姓名,以描述该方法可能正在做什么。你getCards方法取一个整数并返回“卡片”,因为getCards不应该带任何参数,只需返回你存储的卡片列表。如果要返回特定卡片,请声明一个名为public Card getCard(int i)的方法,注意缺少的字母s,因为它显示这将返回一张卡片,而另一方面public List<Card> getCards()方法将返回一张卡片列表,然后for循环就可以了。

答案 1 :(得分:0)

如果我理解正确,你要做的是继续更换终端输出中的字符,而不是将输出分成新行吗?即:一个从1到100的柜台?

为此你需要使用回车符:'\r'

我认为这是您正在打印信用卡的行吗?

System.out.println(format("%10s","\n[ " + firstCardLetter + " ]"));

尝试将此更改为

System.out.println(format("%10s","\r[ " + firstCardLetter + " ]"));

修改 抱歉,您必须使用的是\033[F字符,如上所述here

System.out.println(format("%10s","\033[F[ " + firstCardLetter + " ]"));