(알고리즘) 숫자만 출력
숫자만 출력
숫자만 출력하는 방법을 테스트 코드로 확인해보자.
낮은 단계의 알고리즘의 문제를 테스트 코드로 구현해보자!
테스트 코드로 습관을 들이자
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시 일어나 아침체조, 스트레칭 그리고 비구경 후 머리 짜르러갈까..? 내일 고민은 내일하자. 너무 피곤하다.