문제:
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다.
단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다.
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.

 

문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/12951

 

풀이보기
더보기
function solution(s) {
    let arrStr = s.split(' ');
     
    for(let i = 0; i < arrStr.length; i++) {
        arrStr[i] = arrStr[i].toLowerCase();
        arrStr[i] = arrStr[i].charAt(0).toUpperCase() + arrStr[i].slice(1);
    }
    
    return arrStr.join(' ');
}

일단 간편하게 수정하기 위해 공백을 기준으로 문자열을 배열로 변환해준다.

그런 후 반복문을 통해서 요구사항대로 수정해줄 예정이다.

 

제일 앞글자를 제외한 문자는 소문자이므로 먼저 소문자로 변환해준다.

그 후 문자열의 앞글자를 가져오는 charAt() 메서드를 이용해서 앞글자만 대문자로 변환해준다.

그리고 기존 앞글자는 삭제해준 뒤 둘이 붙여주면 된다.

마지막으로 join 메서드를 이용해서 문자열로 변환해주면 끝 !

 

처음에는 arrStr[i][0] = arrStr[i][0].toUpperCase();로 작성했었다. ㅎㅎ;

이게 안되는 이유가 문자열은 불변 객체이기 때문에 문자열의 특정 인덱스에 직접 값을 지정할 수 없다.

이제라도 알아서 다행이다 ㅎㅎ ..

 

+ Recent posts