12951. JadenCase 문자열 만들기 - charAt()

서진·2023년 6월 28일

programmers

목록 보기
22/33

🔻 JadenCase 문자열 만들기

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

입출력 예

sreturn
"3people unFollowed me" "3people Unfollowed Me"
"for the last week""For The Last Week"

👀
map을 써서 첫번째 문자만 toUpperCase를 적용하여 v[0].toUpperCase로 변경하려 했는데 자꾸만 null값이 출력되었다..

배열 안에 string이 원소로 들어있는 경우, 해당 string에 [index]로 접근하려고 하면 자꾸만 에러를 마주쳤다. (네이버 코테에서도 이것 때문에 엄청 헤맨..)

string의 경우 charAt()으로 접근할 수 있다는 사실을 알아서 포스팅한다!


[👩🏻‍💻내 코드]

function solution(s) {
  	// 공백 기준으로 split
    let splited = s.split(' ');
    let answer = "";
  
  	// 이중 for문을 사용해서 변경
    splited.forEach(v => {
        [...v].forEach((v,index) => {
  			// 첫번째만 대문자
            if (index === 0) answer += v.toUpperCase();
            else answer += v.toLowerCase();
        })
        answer += " ";
    })
    
  	// 마지막에도 공백이 들어가게 되므로 맨 마지막 공백 slice
    return answer.slice(0,answer.length-1);
}

[👀 참고용]

function solution(s) {
    return s.split(" ").map(v => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}

💡 String.prototype.charAt()

charAt() 함수는 문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환한다.

charAt() 안의 수는 0부터 시작하는 index 접근과 같다.

let string = "abcdefg";
  
console.log(string.charAt(3)); // d

charAt()과 []로 접근할 때의 차이
index값으로 범위를 벗어나는 값이 입력된 경우
charAt()은 빈 문자열을 반환하고, []는 undefinedfmf 반환한다.

let str = "1234567";
  
console.log(str.charAt(999)); // " "
console.log(str[999]);  // undefined
profile
🫧 ☁️ 🌙 👩🏻•💻 🌿 🐱 🖱 🍟 🚀 ⭐️ 🧸 🍀 💗

0개의 댓글