문제설명
문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
제한사항
입출력 예
my_string | result |
---|---|
"aAb1B2cC34oOp" | 37 |
"1a2b3c4d123" | 133 |
입출력 예 설명
입출력 예 #1
입출력 예 #2
유의사항
풀이
정규식으로 문자열내의 대소문자 제거 후에 배열로 숫자로 이루어진 문자열을 추출.
붙어 있는 숫자는 하나의 숫자로 간주 하기 때문에 정규식 사용에 유의.
[a-zA-Z]+
위 정규식으로 문자열을 분리할 경우 공백 문자열이 생성 될 수 있다.
이제 배열을 정수타입으로 전환해서 더해주기 만 하면 되지만, 공백 문자열 때문에
예외가 발생할 수 있다.
미리 공백문자열이 생기지 않게 정규식을 손보거나 공백 요소를 다시 한번 제거해 주는 방법도 있으나,
try-catch문으로 정수타입으로 변환 시 발생하는 예외는 따로처리 해주고,
예외가 발생하지 않는 값들만 더해주는 방법으로 결과를 처리 했다.
class Solution {
public int solution(String my_string) {
int answer = 0;
String[] arr = my_string.split("[a-zA-Z]+");
for (String string : arr) {
try {
answer += Integer.parseInt(string);
} catch (Exception e) {
continue;
}
}
return answer;
}
}
참고