본문 바로가기
코딩 테스트

[ 프로그래머스 ] 숨어있는 숫자의 덧셈

by 주연배 2024. 3. 17.

문제

 

풀이

1) replaceAll()을 이용해 my_string에서 숫자가 아닌 요소를 삭제한다
2) charAt()으로 각 숫자들을  가져와 문자열에서 정수로 바꿔준 후
3) sum에다가 누적시켜준다

 

결과

class Solution {
    public int solution(String my_string) {
        int sum = 0;
        String str = my_string.replaceAll("[^0-9]","");
        for(int i=0; i<str.length(); i++){
            
            sum += Integer.parseInt(String.valueOf(str.charAt(i)));
        }
        return sum;
    }
}

 

 

replaceAll()에서 [^0-9]는 0~9가 아닌(^) 것들을 공백으로 바꿔준다는 뜻이다.

찾아보니 대소문자 알파벳은 [a-zA-Z]로 나타낸다는 사실 또한 알게됐다!

my_string.replaceAll("[a-z]",""); // 소문자
my_string.replaceAll("[A-Z]",""); // 대문자
my_string.replaceAll("[a-zA-Z]",""); // 대소문자