class Solution { public int solution(String my_string) { int answer = 0; int i = 0; String num = my_string.replaceAll("\\D", ""); while(i < num.length()) { char c = num.charAt(i); answer += c-48; i++; } return answer; } }
- 문자열 안에 숫자만을 더 하여 반환하는 문제입니다.
- 문자열에는 소문자, 대문자, 숫자로 구성되어 있습니다.
2-1.replaceAll
과정규표현식
을 사용하여 숫자를 제외한 소문자, 대문자를 ""으로 치환하였습니다.
2-2.\\D
는 숫자가 아닌경우만을 허용하는정규표현식
으로 숫자를 제외한 곳만을 relace 타겟으로 잡았습니다.charAt
를 통해 문자열들을 char c에 넣었습니다.
3-1. char 형태로 되어있기 때문에 int에 넣어줄 때 아스키코드 값 -48을 하여 answer에 저장했습니다.
3-2. 차곡차곡 쌓인 answer는 문자 안에 있는 숫자가 전부 더해졌으며, 이를 반환했습니다.