유리쯔의일상 2023. 10. 20. 19:09
반응형

    public int solution(String str) {  
        int answer = 0;  
        for ( char x:str.toCharArray()) {  
            if (x >= 48 && x <= 57) answer=answer*10+(x-48);  
        }  
//        String tmpStr = str.replaceAll("[a-zA-Z]","");  
//        int answer = Integer.parseInt(tmpStr);  
//        System.out.println(answer);  
  
        return answer;  
    }  
    public static void main(String[] args) {  
        chapter_9 T = new chapter_9();  
        Scanner in = new Scanner(System.in);  
        String str = in.nextLine();  
        System.out.println(T.solution(str));  
    }

👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇

 

 

 

 

 

 

 

 

문제 해결고민

1. 숫자만 추출을 하고 나머지 외에 문자를 삭제해야한다
2. 숫자를 추출했을때 0102 일 경우 102로 표현하게 되어야한다
3. 숫자를 표현할때 String이 아닌 Integer로 인식을 잡게 되면 앞에있는 0 은 자연스럽게 사라질 것 같다

 

 

 

 

 

 

 

 

 

 

 

나의 풀이

    public int solution(String str) {  
        String tmpStr = str.replaceAll("[a-zA-Z]","");  
        int answer = Integer.parseInt(tmpStr);  
        System.out.println(answer);  
  
        return answer;  
    }  
    public static void main(String[] args) {  
        chapter_9 T = new chapter_9();  
        Scanner in = new Scanner(System.in);  
        String str = in.nextLine();  
        System.out.println(T.solution(str));  
    }  
}

 

 

 

 

 

 

 

 

 

 

선생님의 풀이과정

 

아스키 코드를 사용한다
 x >= 48 && x <= 57
 범위가 숫자 '0'~'9' 범위를 지정하여 숫자만 추출하고
 아스키 코드를 이용하여 자연수 만든다,


생각보다 내가 짠 코드와 쌤의 코드가 크게 차이가 없었다.

 

 

 

 

 

 

 

반응형