[프로그래머스] Level0. 숨어있는 숫자의 덧셈 (2)

Benjamin·2023년 2월 13일
0

프로그래머스

목록 보기
20/58

내 풀이

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        String number = "";
        boolean check = false;
        for(int i=0; i<my_string.length(); i++) {
            char ch = my_string.charAt(i);
            while(!Character.isLetter(ch)) {
                number += ch;
                check = true;
                if(i+1 < my_string.length())ch = my_string.charAt(++i);
                else break;
            }
            if(check) answer += Integer.parseInt(number);
            check = false;
            number = "";
        }
        return answer;
    }
}

다른 풀이

class Solution {
    public int solution(String my_string) {
        int answer = 0;

        String[] str = my_string.replaceAll("[a-zA-Z]", " ").split(" ");

        for(String s : str){
            if(!s.equals("")) answer += Integer.valueOf(s);
        }

        return answer;
    }
}

replaceAll()과 split()를 이렇게 응용해서 쓸 수 있구나.

그리고 숫자가없으면 s에 ""가 들어가기때문에, answer에 숫자를 더하기전에 if(!s.equals(""))로 조건문을 걸어야한다. 그렇지않으면 NumberFormatException이 난다.

0개의 댓글