<대문자로 통일>
: 대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자로 모두 통일하여 문자열을 출력하는 프로그램을 작성한다.
- 첫 번째 방법은, for..of문으로 x가 소문자이면(toLowerCase() 이용), 대문자(toUpperCase())로 바꿔주면 된다.
- 두 번째 방법은, 모든 문자를 아스키코드로 변환시켜서(charCodeAt(), 만약 소문자아스키코드(97~122)이면, -32해서 대문자아스키코드(65~90)으로 바꿔준다.
그리고 현재 모든 문자들이 아스키코드이기 때문에, String.fromCharCode(num-32)를 이용해서 아스키코드를 문자열로 변환하여 준다.
참고할 점 ) 왜 -32를 하나요? : 대문자A의 아스키번호 65, 소문자a의 아스키번호 97. 두 값의 차이는 32. 그렇기 때문에 97-32를 해주면, 소문자a가 대문자 A가 됨.
<script> function solution(s){ let answer=""; for(let x of s){ let num=x.charCodeAt(); if(num>=97 && num<=122) answer+=String.fromCharCode(num-32); else answer+=x; //if(x===x.toLowerCase()) answer+=x.toUpperCase(); //else answer+=x; } return answer; } let str="ItisTimeToStudy"; console.log(solution(str)); </script>
난 if문 없이, 그냥 단어자체를 대문자(toUpperCase())로 바꿨다. 문제가 되려나?
=> 문제되지 않는다고 함~