TIL)23.06.13(알고리즘_소문자로 바꾸기)

주민·2023년 6월 13일
0

TIL

목록 보기
17/84

프로그래머스의 소문자로 바꾸기 문제

문제

알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 소문자로 변환하여 return 하는 solution 함수를 완성해 주세요.

입출력 예

myStringmyString
aBcDeFgaBcDeFg
aaaaaa

문제 풀기 & 해결

아스키 코드를 이용하여 대소문자를 구분하고 대문자인 것만 가져와(charAt) 아스키코드를 바꿔 출력하는 방법을 쓰려했는데 단순하게 전체를 바꾸는 방법이 있을거 같아 찾아봤더니 함수가 있어 두가지 방법으로 풀어보려고 한다.

1안(toLowerCase) => 해결

class Solution {
    public String solution(String myString) {
        return myString.toLowerCase();
    }
}

2안(아스키 코드) => 해결

class Solution {
    public String solution(String myString) {
        // A => 65 a => 97 => 차이: 32
        // Z => 90 z => 122
        String answer = "";
        
        * myString 의 길이
        int len = myString.length();
        
        * 반복분을 통해 myString의 각 글자가 Z보다 작을 경우에는 +32를 해서 소문자로 변경 - 아닐경우에는 그대로 answer에 추가
        for(int i=0; i < len; i++){
            if(myString.charAt(i) <= 'Z'){
                answer += (char)((int)+ myString.charAt(i)+32);
            } else{
                answer += myString.charAt(i);
            }
        }
        return answer;
    }
}

알게된 점

  1. 대소문자 변경
    1) toUpperCase : 전체를 대문자로 변환
    2) toLowerCase : 전체를 소문자로 변환
String str = "aBcDeFg";

str = str.toUpperCase(); => ABCDEFG
str = str.toLowerCase(); => abcdefg
  1. 아스키 코드
  • 참고용
    1) 대소문자의 차이는 32
    2) A : 65 / a : 97 / Z : 90 / z : 122

0개의 댓글

관련 채용 정보