문자열 계산기 1단계 구현 및 리팩토링

    반응형
    package calculator;
    
    public class StringCalculator {
    
    	int add(String text) {
    		
    		//1번 조건
    		if(text == null || text.isEmpty()) {
    			return 0;
    		}
    		
    		if(text.contains(",")) {
    			//3번 조건
    			String[] numbers = text.split(",");
    			for(String st : numbers) {
    				totalNumbers += Integer.parseInt(st);
    			}
    			
    			return totalNumbers;
    		}
    	
        	//2번 조건
     		return Integer.parseInt(text);
    	}      
    }

    기능은 돌아가지만 여기서 멈출 것이 아니라 리팩토링 생각하기!

     

    먼저 배열이 한 개 일 때도 split이 잘 반환되는지 테스트를 해본다

    	@Test
    	public void split() {
    		String[] values = "1".split(",");
    		assertArrayEquals(new String[] {"1"}, values);
    
    		values "1,2".split(",");
    		assertArrayEquals(new String[] {"1","2"}, values);
    		
    	}

    둘 다 잘 반환!

     

    public class StringCalculator {
    
    	int add(String text) {
    		
    		//1번 조건
    		if(text == null || text.isEmpty()) {
    			return 0;
    		}
    		
    		int totalNumbers = 0;
    		//3번 조건
    		String[] numbers = text.split(",");
    		for(String st : numbers) {
    			totalNumbers += Integer.parseInt(st);
    		}
    		
    		return totalNumbers;
    	}      
    }

    다음처럼 중복 부분을 제거하여 리팩토링 할 수 있다

     

    참고 : 박재성 유튜브

    https://www.youtube.com/watch?v=08YYZ0acYNE

    728x90
    반응형

    댓글