Contents
(알고리즘) 숫자만 출력
   Sep 16, 2022     3 min read

숫자만 출력

숫자만 출력하는 방법을 테스트 코드로 확인해보자.

낮은 단계의 알고리즘의 문제를 테스트 코드로 구현해보자!

테스트 코드로 습관을 들이자

import java.io.*;

public class Main {

		//replaceAll, 정규식을 사용해서 추출
    public int solution(String s){
        int answer = 0 ;
        s = s.replaceAll("[^0-9]","");
        answer = Integer.parseInt(s);
        return answer;
    }

    //숫자의 아스키코드를 이용해서 추출
    public int solution2(String s){
        int answer = 0;
        for (char x : s.toCharArray()) {
            if(x >= 48 && x <= 57 ){
                answer = answer * 10 + (x - 48);
            }
        }
        return answer;
    }

    //Character.isDigit(x))를 이용해서 숫자만 추출
    public int solution3(String s){
        String answer = "";

        for (char x : s.toCharArray()) {
            if(Character.isDigit(x)) answer+=x;
        }
        return Integer.parseInt(answer);
    }

		//메인메서드
    public static void main(String[] args) throws IOException {
        Main T = new Main();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        System.out.println(T.solution3(s));
    }
}

replaceAll, 정규식을 사용해서 추출

    public int solution(String s){
        int answer = 0 ;
        s = s.replaceAll("[^0-9]","");
        answer = Integer.parseInt(s);
        return answer;
    }
@Test
void정규식추출(){
	MainT = new Main();
	intresult = T.solution("g0en2T0s8eSoft");
	assertEquals(T.solution("208"), result);
}

테스트 완료 !

숫자의 아스키코드를 이용해서 추출


    public int solution2(String s){
        String answer = "";

        for (char x : s.toCharArray()) {
            if(Character.isDigit(x)) answer+=x;
        }
        return Integer.parseInt(answer);
    }

@Test
void 아스키코드(){
   Main T = new Main();
   int result = T.solution2("g0en2T0s8eSoft");
   assertEquals(T.solution2("208"), result);
}

테스트 완료.!

Character.isDigit(x))를 이용해서 숫자만 추출


    public int solution3(String s){
        String answer = "";

        for (char x : s.toCharArray()) {
            if(Character.isDigit(x)) answer+=x;
        }
        return Integer.parseInt(answer);
    }

@Test
    void isDigit메소드이용(){
        Main T = new Main();
        int result = T.solution3("g0en2T0s8eSoft");
        assertEquals(T.solution3("208"), result);
    }

마지막도 테스트 통과

숫자만 추출을 회고하며..

테스트 코드가 익숙하지않다. 알고리즘 문제 중 풀었던 것들을 한번 더 테스트코드로 작성해서 정답확인을 해보자.

아이고 졸렵다 내일 아침6시 일어나 아침체조, 스트레칭 그리고 비구경 후 머리 짜르러갈까..? 내일 고민은 내일하자. 너무 피곤하다.