728x90

문제설명

 

 

import java.util.Scanner;

public class ExtractOnlyNumber {
    public static long solution(String s){
        long answer = 0;
        for (char x: s.toCharArray()) {
            if (x >= 48 && x <= 57) {
                answer = answer * 10 + (x - 48);
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();
        System.out.println(solution(s));
    }
}

 

 

 

  1. 하나의 단어를 Scanner를 통하여 입력받는다.
  2. answer 라는 변수를 0으로 초기화 후 선언 하여 숫자만 추출하여 더해나간다.
  3. Stirng을 char배열로 for each 돌린다.
  4. 문자열 숫자는 아스키 코드 48 ~ 57 사이임으로 해당되는 문자열(숫자)만 if문으로 걸러낸다.
  5. 첫번째 자리가 0 일경우 무시하므로 누적된 answer 를 10을 곱한다음 문자열에서 48을 빼면 원래 의 숫자값이 나온다.
  6. answer를 리턴한다.

 

 

728x90