대문자 찾기
특정문자열에서 대문자를 찾아 갯수를 세는 문제입니다.
charCodeAt()메소드를 사용하면 index에 해당하는 문자의 unicode 값을 리턴합니다.
(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt)
string.charCodeAt(index)
- unicode 대문자는 65~90을 소문자는 97~122 값을 갖습니다.
- 참고 : charAt()은 index에 해당하는 문자를 리턴하고, charCodeAt은 유니코드 값을 리턴합니다.
대문자의 unicode 값이 65~90 사이임을 참고해 다음과 같이 코드를 작성할 수 있습니다.
function capital(str) {
let answer = 0;
for (let x of str) {
let num = x.charCodeAt();
if (num >= 65 && num <= 90) answer++;
}
return answer;
}
let str = "ToUpperCase";
console.log(capital(str)) // 3
toUpperCase() 메소드를 쓰면 문자열을 대문자로 변환해서 반환합니다.
(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase)
이것을 이용해 str에 들어온 문자들과 str[i].toUpperCase()를 비교해 맞다면 answer를 1씩 더해주는 방식으로도 풀 수 있습니다.
function capital(str) {
let answer = 0;
for (let x of str) {
if (x === x.toUpperCase()) answer++;
}
return answer;
}
let str = "ToUpperCase";
console.log(capital(str)) // 3