2014-12-01 3 views
0

나는 이것을 시작하는 방법에 대해 혼란 스럽다. 나는 입력 파일을 읽고 문자열을 바꿔 출력 파일 (OUT)에 쓰는 방법을 찾아야한다. 2-H 카드 갑판의 텍스트 파일 읽기 및 문자열 바꾸기

  • OUT : 하트 두 (값 = 2) IN
  • 1-C
  • OUT 잘못된 카드 입력 파일 (IN)는 IN 카드

    • 의 갑판 랭크 1의 C-
    • IN : 7 * C
    • OUT : 7 * C
    • 잘못된 구분 IN : X의 Y *의
    • OUT : X에서 인식 할 수없는 형식 * Y
    • IN
    • : AC
    • OUT : 클럽의 에이스 (값 = 1 값 = 11) IN
    • : QH
    • OUT : 마음의 여왕 (값 = 10
  • 답변

    0

    내가 권하고 싶습니다 매핑을 수행하는 함수를 테스트합니다. 파일 읽기/쓰기는 쉽게 볼 수 있습니다.

    시험 운전이 리드 :

    테스트 :

    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 ""; 
         } 
        } 
    } 
    

    .

    +0

    체포 방법을 모르겠습니다! @ weston 다른 방법이있을 것입니다. 이미 텍스트 파일을 읽는 방법이 있지만 카드 덱을 다른 파일로 다시 쓰는 방법을 쓰는 방법을 모르겠습니다. – daman

    +0

    @daman 나는 이것을'Card' 클래스에서 시작했습니다. 테스트는 끝내기위한 최선의 방법 일 뿐이지 만 테스트를 계속할 필요가 없습니다. – weston

    +0

    당신의 도움을 위해 다른 방법으로 시험해 볼 메신저 @weston – daman