Algorithm/inflearn

숫자만 추출

마닐라 2021. 9. 4. 22:22

1. 자릿수 하나씩 올려주기

import java.util.Scanner;

class Main {
    public int solution(String str) {
        int answer = 0;

        for(char x : str.toCharArray()){
            //숫자이면 --> 문자 0이 48이고 문자 9가 57임.
            if(x >= 48 && x <= 57) {
                answer += answer * 10 + (x-48);
            }
        }

        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);

        String str = kb.next();

        System.out.println(T.solution(str));



    }
}

-> 문자 x가 숫자이면 조건문 안에 들어오는데 들어오게 되면 x가 숫자로 변환되어서 질문 올려둠...

-> 누적을 하면 안된다! answer = answer * 10 + (x-48) 로 변경해야함!

 

2.isDigit 메서드와 parseInt 사용

import java.util.Scanner;

class Main {
    public int solution(String s) {
        String answer = "";

        for(char x : s.toCharArray()){
            //이게 숫자냐?
            if(Character.isDigit(x)) answer += x; 
        }

        //0208이 208이 됨
        return Integer.parseInt(answer);
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner kb = new Scanner(System.in);

        String str = kb.next();

        System.out.println(T.solution(str));



    }
}