본문 바로가기

알고리즘

JS | 대문자로 통일 하기

❓ 대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자로 모두 통일하여

문자열을 출력하시오.

 

        function solution(s) {
            let answer="";

            return answer;
        }

        let str = "ItisTimeToStudy";
        console.log(solution(str));

앞에 문제들과 마찬가지로 s로 받아오고

answer는 "", 스트링을 사용해서 누적할 것이다.

 

        function solution(s) {
            let answer="";
            for(let x of s){
                if(x===x.toLowerCase()) answer+=x.toUpperCase();
            }

            return answer;
        }

        let str = "ItisTimeToStudy";
        console.log(solution(str));

for문을 사용해서

소문자인 것을 나타내주는 toLowerCase를 사용해서 x가

참이면 answer에 대문자로 누적하는 식을 작성해준다.

 

        function solution(s) {
            let answer="";
            for(let x of s){
                if(x===x.toLowerCase()) answer+=x.toUpperCase();
                else answer+=x;
            }

            return answer;
        }

        let str = "ItisTimeToStudy";
        console.log(solution(str));

그리고 그게 아니면(거짓이면) 대문자라는 소리니까

그대로 그냥 누적해준다. (+=)

 

 

결과값

 

 

 

또 다른 방법으로는 아스킷 넘버를 이용하는 것도 있다.

 

        function solution(s) {
            let answer="";
            for(let x of s){
                let num=x.charCodeAt();
                if(num>=97 && num<=122) answer+=String.fromCharCode(num-32);
                else answer+=x;
            }

            return answer;
        }

        let str = "ItisTimeToStudy";
        console.log(solution(str));

num에 아스킷 넘버를 할당하고

97~122사이라면 (소문자라면)

answer에 String.fromCharCode(num-32)를 사용하여

대문자로 바꿔 누적하는 식을 작성해준다.

소문자에서 32를 빼면 대문자가 된다.

그것을 String.fromCharCode을 사용하면 대문자로 바꿔주는 것이다.

 

 

아스킷 넘버를 사용한 출력값

 

 

'알고리즘' 카테고리의 다른 글

JS | 대문자 찾기  (0) 2021.09.14
JS | 문자 찾기  (0) 2021.09.02
JS | A를 #으로 바꾸기  (0) 2021.08.31
JS | 일곱 난쟁이 찾아내기  (0) 2021.08.30
JS | 10부제 위반 차량 출력하기  (0) 2021.08.23