[작성일: 2024. 01. 15]
풀이
class Solution {
public int solution(String my_string) {
int answer = 0;
String[] arr = my_string.replaceAll("[a-zA-Z]", " ").split(" ");
for (int i = 0; i < arr.length; i++) {
if (!arr[i].isEmpty()) {
answer += Integer.valueOf(arr[i]);
}
}
return answer;
}
}
이 문제는 replaceAll과 정규식을 사용하면 쉽게 풀 수 있다.
"[a-zA-Z]"는 소문자와 대문자를 의미하며 " "로 replace한다는 뜻이 된다.
즉 주어진 문자열에서 숫자를 제외한 영어는 공백으로 대체된다.
그 후 my_string을 공백으로 split 해서 String[] arr에 담는다.
aAb1B2cC34Oop라는 my_string이 주어졌을 때 arr에는 [, , , 1, 2, , 34]가 담기게 된다.
이 배열을 가지고 for문을 돌려서 arr[i]가 비어있지 않다면 answer에 더해주고, 그 answer을 return하면 된다.