JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 길이 1 이상 200 이하인 문자열입니다.
s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.
숫자는 단어의 첫 문자로만 나옵니다.
숫자로만 이루어진 단어는 없습니다.
공백문자가 연속해서 나올 수 있습니다.
function solution(s) {
var answer = '';
//1. split해주기 -> 단어별로 나누기 위함
//2. lowercase -> 전부 소문자로 바꿔주고
//3. 맨앞이숫자? 패스 -> 맨앞이 숫자면 그냥 넘어가고
//4. 맨앞이 영어 ? 대문자 -> 맨앞이 알파벳이면 대문자로바꿔주겠다./
})
}
1. split해주기 -> 단어별로 나누기 위함 2. lowercase -> 전부 소문자로 바꿔주고 3. 맨앞이숫자? 패스 -> 맨앞이 숫자면 그냥 넘어가고 4. 맨앞이 영어 ? 대문자 -> 맨앞이 알파벳이면 대문자로바꿔주겠다.
다음과 같은 로직을 생각하고 일단 구현하다보니 ..
생각해보니 숫자든 알파벳이던 그냥 맨앞문자열을 대문자로 만들어주면 결과는 동일했다.
function solution(s) {
var answer = '';
let a = s.split(' '); //split해주기
a.map((element,index) => {
a[index] = element.charAt(0).toUpperCase() + element.slice(1).toLowerCase();
//첫글자만 upper,나머지는 lowercase
})
return a.join(' ');
}
다음과 같이 구현해주었다.
charAt(0).toUpperCase()하면위의 사진과같이 맨앞문자열빼고 나머지는 사라지므로 element.slice(1)을 해주어 나머지 문자열에 대한 로직처리를 해주었다.