【问题标题】:Replace input values in arraylist with a custom made class用自定义类替换 arraylist 中的输入值
【发布时间】:2016-06-17 07:52:05
【问题描述】:

用卡片索引替换用户输入

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

【问题讨论】:

  • 你正在调用deck,shufflecard,它正在洗牌你的列表。之后,您调用 getcards(i) --> 这是用户输入。根据逻辑,卡片输出是正确的。

标签: shuffle


【解决方案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&lt;Card&gt; getCards() 方法将返回卡片列表,然后是 for 循环会工作的。

【讨论】:

  • 随机化索引号是什么意思?我会在 Deck Constructor 中洗牌
  • 对不起,我忘了添加字符转换,现在检查,您将在您添加 firstCard secondCard 等的甲板构造函数中替换整个东西,它会添加它,我仍然会将列表作为卡片而不是卡片,希望对您有所帮助
  • 很高兴它起作用了,当你增加点数时,替换字母,向 Card setCardLetter 添加一个方法,用空字符串替换 Card 字母,然后在甲板 setEmpty(index i) 中添加一个方法将设置cards.get(i).setCardLetter(""); 的卡片字母。因此,当您增加积分时,请执行deck.setCardEmpty(data.getFirstUserInput());,然后再执行第二次,如果您理解这一点,请告诉我。如果一切正常,请接受答案谢谢
  • 第一件事是你的 set 方法应该是无效的,除非你使用返回值。并在 Card 类 public void setCardLetter(String letter){ cardLetter = letter; } 中替换它,如果这样做不会更新您在问题中拥有的代码
  • 没关系,别担心,我明白了,让我知道它是否有效
【解决方案2】:

如果我理解正确,您要做的是继续替换终端输出中的字符,而不会将输出分成新行,对吗?即:从 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 + " ]"));

【讨论】:

    猜你喜欢
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2017-10-06
    • 2011-04-26
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多