프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 특정한 문자를 대문자로 바꾸기(Java)

Sigfriede 2023. 5. 18. 01:10

  문제 설명

  영소문자로 이루어진 문자열 my_string과 영소문자 1글자로 이루어진 문자열 alp가 매개변수로 주어질 때, my_string에서 alp에 해당하는 모든 글자를 대문자로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

 

  제한사항

  • 1 <= my_string의 길이 <= 1,000

 

  입출력 예

my_string alp result
"programmers" "p" "Programmers"
"lowercase" "x" "lowercase"
class Solution {
    public String solution(String my_string, String alp) {
        String answer = my_string.replace(alp, String.valueOf((char)(alp.charAt(0) - 32)));
        return answer;
    }
}

  replace 메소드를 이용하여 alp에 해당하는 문자열을 모두 대문자로 변경합니다. replace의 현재 문자를 넣는 인자에  alp를 넣습니다. 변경하고 싶은 문자에는 alp를 대문자로 변경한 인자를 넣습니다. 이는 아스키 코드를 이용하여 소문자를 대문자로 변경하는 것입니다. 아스키 코드를 이용하기 위해서 charAt(0)에서 32(아스키 코드에서의 대소문자 간격)만큼을 뺍니다. 숫자 상태를 문자(char)형으로 형변환 하여 문자로 나타날 수 있도록 합니다. 이를 다시 valueOf 메소드를 이용하여 String으로 형변환 합니다. String으로 변환하는 이유는 replace가 문자열 형태의 인자를 받기 때문입니다.

  앞선 과정을 모두 거치면 alp에 해당하는 모든 문자를 대문자로 바꾼 문자열을 반환합니다.