首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取一套卡片的文本文件并替换字符串

读取一套卡片的文本文件并替换字符串
EN

Stack Overflow用户
提问于 2014-12-01 12:29:31
回答 1查看 514关注 0票数 0

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

  • IN: 2-H
  • 两颗心(价值= 2)
  • IN: 1-C
  • 输出:无效卡等级在1-C中
  • 在: 7*C
  • OUT: 7*C中无效的分隔符
  • 单位: X*Y
  • OUT: X*Y中无法识别的格式
  • IN:
  • OUT: Ace (value=1或value = 11)
  • IN: Q-H
  • 走出:心之女王(value=10 )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-01 13:04:21

我建议测试驱动函数来执行映射。文件的读/写是微不足道的查找。

试驾的结果是:

测试:

代码语言:javascript
复制
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"));
    }

}

类:

代码语言:javascript
复制
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 "";
        }
    }
}

您只需继续添加测试,以涵盖所有所需的功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27228446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档