프로그래머스 - 숨어있는 숫자의 덧셈 (2)

박철현·2023년 7월 25일

프로그래머스

목록 보기
38/80

프로그래머스 - 숨어있는 숫자의 덧셈 (2)

class Solution {
    public int solution(String my_string) {
        int answer = 0;    
    // replaceAll() 메서드는 내부적으로 java.util.regex를 사용하여 지원되는 기능 
    // 문자열에서 정규 표현식과 일치하는 부분을 찾고, 제공된 대체 문자열로 바꿉니다. 
    // 별도의 라이브러리를 사용하지 않고도 정규 표현식을 활용할 수 있습니다.
        
    // 숫자 : [0-9] 또는 \d를 사용하여 숫자
    // 예시 : "123abc456".replaceAll("[0-9]", "#"); 결과는 ###abc###

    // 공백 : \s를 사용하여 공백 문자
    // 예시: "Hello World\t!".replaceAll("\\s", "_"); 결과는 Hello_World_! ('\t'는 탭 문자)
        
    // 문자 : \w를 사용하여 영문자, 숫자 및 밑줄(_)을 포함하는 단어 문자
    // 예시 : "%Ab9$%".replaceAll("\\w", "*"); 결과는 %***$%
       my_string = my_string.replaceAll("[a-zA-Z]", " ");
    // "aAb1B2cC34oOp" -> "___1_2__34___" (공백을 _로 표기함)
    // 공백을 기준으로 나누면 1, 2, 34 => 37
        String[] strArr = my_string.split(" ");
        
        
        
        for(String tmp : strArr) {
            if(!tmp.isEmpty())
                answer += Integer.parseInt(tmp.trim());
        }
        
       return answer;
    }
}
  • 정규식 기본 기호 : [] => 괄호 안에 있는 문자 포함인지 / - 사이의 문자 혹은 숫자
    • split, matches 메서드 또한 내부적으로 java.util.regex를 사용
    • split: 정규 표현식을 기반으로 문자열을 분리하고, 분리된 문자열의 배열 반환
      • "apple,banana,orange".split(","); => ["apple", "banana", "orange"]
    • matches: 정규 표현식과 전체 문자열이 일치하는지 확인하고, boolean 값 반환
      • "12345".matches("\d+"); => true (모든 문자 숫자)
  • 출처
profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

정보 감사합니다.

답글 달기