读取一副纸牌的文本文件并替换字符串



我对如何开始感到困惑,我必须找到一种方法来读取输入文件并替换字符串并将其写入输出文件(OUT)。输入文件 (IN) 是一副纸牌

  • 在: 2-小时
  • OUT:两颗心(值 = 2)
  • 在: 1-C
  • OUT:1-C 中的卡牌等级无效
  • 在: 7*C
  • OUT:7*C 中的分隔符无效
  • 在: X*Y
  • OUT:X*Y 中无法识别的格式
  • 在: A-C
  • OUT:俱乐部王牌(值 = 1 或值 = 11)
  • 在: Q-H
  • OUT:红心皇后(值 = 10

我建议测试驱动一个函数来执行映射。文件读取/写入很容易查找。

试驾会导致这种情况:

测试:

public class CardsTests {
    @Test
    public void TwoOfHearts() {
        Assert.assertEquals("Two of hearts (value = 2)", Card.fromString("2-H"));
    }
    @Test
    public void ThreeOfHearts() {
        Assert.assertEquals("Three of hearts (value = 3)", Card.fromString("3-H"));
    }
    @Test
    public void ThreeOfSpades() {
        Assert.assertEquals("Three of spades (value = 3)", Card.fromString("3-S"));
    }
}

类:

public class Card {
    public static String fromString(String string) {
        char value = string.charAt(0);
        String textValue = valueToText(value);
        String suit = getSuit(string.charAt(2));
        return String.format("%s of %s (value = %c)", textValue, suit,
                value);
    }
    private static String getSuit(char value) {
        switch (value) {
        case 'H':
            return "hearts";
        case 'S':
            return "spades";
        default:
            return "";
        }
    }
    private static String valueToText(char value) {
        switch (value) {
        case '2':
            return "Two";
        case '3':
            return "Three";
        default:
            return "";
        }
    }
}

您只需继续添加测试即可涵盖所有必需的功能。

相关内容

  • 没有找到相关文章

最新更新