문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
만약 "tgeDa1h205er"에서 숫자만 추출한다면 0, 1, 2, 0, 5 이고, 이것을 자연수로 만들면 1205가 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
g0en2T0s8eSoft
208
숫자만 골라내야 하는데, 0~9의 아스키 코드 값은 48 ~ 57임.
x >= 48 && x <= 57 을 만족하는 경우, 숫자로 판단.
"tge0Da1h205er"
import java.util.*;
class Main {
// (1)
public int solution(String s) {
int answer = 0;
for(char x : s.toCharArray()) {
if (x>= 48 && x <= 57) answer = answer * 10 + (x-48);
}
return answer;
}
// (2)
public int solution(String s) {
String answer = "";
for(char x : s.toCharArray()) {
// isDigit() : 숫자 판별 함수
if (Character.isDigit(x)) answer += x;
} // 여기까지만 하면 answer는 String이므로 "0208" 출력됨.
return Integer.parseInt(answer); // int로 파싱.
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.print(T.solution(str));
}
}