显示在新行上,并未替换用户键入的实际数字。我试图将字母和数字放在同一个arraylist中,但我不知道如何显示这些。
答案 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 + " ]"));