我对如何开始感到困惑,我必须找到一种方法来读取输入文件并替换字符串并将其写入输出文件(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 "";
}
}
}
您只需继续添加测试即可涵盖所有必需的功能。