본문 바로가기
Programming/JavaScript

문장의 각 단어의 첫글자를 대문자로 바꾸는 방법 | Algorithm | JavaScript

by 혀코 2020. 9. 6.

안녕하세요. 혀코입니다.

이번 시간에는 문장의 각 단어의 첫글자를 대문자로 바꾸는 방법에 대해서 알아보겠습니다.

 

function capitalize(str) {
    words = [];
    words = str.split(' ');
    for(let i = 0; i <= words.length - 1; i++) {
        words[i] = words[i][0].toUpperCase() + words[i].slice(1);
    }
    words = words.join(' ');

    return words;
}

module.exports = capitalize;

 

비어있는 배열 words를 만들고, 전달 받은 문자열을 각 단어로 스페이스를 기준으로 잘라서 배열에 저장합니다. 배열을 for loop을 돌려서 각 단어의 첫글자를 대문자로 바꾸고, 단어의 두번째 글자부터 마지막 글자까지 잘라서 붙여 배열의 각 단어를 업데이트해 줍니다. 그리고 join() 메소드를 사용해서 각 단어 사이에 스페이스를 추가해서 문장으로 치환해 줍니다.

코드를 심플하게 정리해 보자면, 다음과 같이 작성할 수 있습니다.

function capitalize(str) {
    words = [];
    for(let word of str.split(' ')) {
        words.push(word[0].toUpperCase() + word.slice(1));
    }
    return words.join(' ');
}

module.exports = capitalize;

 

또 다른 방법이 있는데, 배열로 변환하지 않고 문자열 자체에서 대문자로 바꾸는 방법이 있습니다.

function capitalize(str) {
    let result = str[0].toUpperCase();

    for(let i = 1; i < str.length; i++) {
        if(str[i - 1] === ' ') {
            result += str[i].toUpperCase();
        } else {
            result += str[i];
        }
    }

    return result;
}

module.exports = capitalize;

문장의 첫 글자는 무조건 대문자로 바꾸고 나머지 글자는 이전 문자가 스페이스인지 확인해서 대문자로 바꾸는 방법입니다. 이렇게 한 문자씩 for loop을 돌려서 result 문자열에 저장하면 문장에서 각 단어의 첫글자를 대문자로 바꿀 수 있습니다.

 

이렇게 문장의 각 단어의 첫글자를 대문자로 바꾸는 방법에 대해서 알아봤습니다.

유용하셨다면, 공감과 구독 부탁 드립니다.

감사합니다.

댓글