[JAVA SCRIPT] 아스키 코드 활용 charCodeAt, fromCharCode

차슈·2024년 4월 15일
0

JAVA SCRIPT

목록 보기
15/24
post-thumbnail

자바스크립트 알고리즘 문제를 풀다가 소문자, 대문자 판별, 숫자를 판별해야할때 아스키코드를 자주 사용한다.

읽는법은 보통 문자와 10진수를 많이 본다. 문자 항목에 있는 갓들이 입력값으로 넣어줘야하는 것이고, 10진수는 "문자"를 아스키 코드 번호로 변환한것.

그렇기 때문에 특정 "문자"가 아스키코드 번호로 몇번인지 파악할 수 있기때문에 주로 알고리즘 문제를 풀때 많이 사용한다.


문자 -> 아스키 코드 번호

문자.charCodeAt();

문자열에서만 사용할 수 있다

예시로 살펴보자.

"h".charCodeAt();  // 104
1.charCodeAt();  // 에러 발생!!!
"h".charCodeAt();  // 104
"H".charCodeAt();  // 72
"1".charCodeAt();  // 49
" ".charCodeAt();  // 32

문자열을 넣어보겠다.

"ABC".charCodeAt(0); // returns 65
"hello".charCodeAt();  // 104
"bye".charCodeAt();  // 98
"World".charCodeAt();  // 87

문자열 입력을 보니 가장 앞에있는 숫자만 아스키코드로 변경되는 것을 볼 수 있다.
그럼 두번째 문자부터는 변환할 수 있는 방법이 없을까?

charCodeAt()에는 인자를 넣을 수 있는데 이때의, 인자 = 문자열의 인덱스 번호를 의미한다.

예를들어,

"hello".charCodeAt(0);  // 104
"hello".charCodeAt(1);  // 101
"hello".charCodeAt(4);  // 111
"hello".charCodeAt(5);  // NaN
"hello".charCodeAt(-1);  // NaN

인덱스는 0번으로 시작하기 때문에
index[0] = h
index[1] = e
index[2] = l

이렇게 하나씩 인덱스를 넣어서 문자열 내 해당 인덱스에 존재하는 문자가 변환되는 것을 볼 수 있다.
만약 문자열이 가지고 있는 인덱스 범위를 넘어가면 NaN이 반환된다.


아스키 코드 번호 -> 문자

String.fromCharCode(number)

fromCharCode의 인자로는 number(숫자)만 넣을 수 있다.

여기서의 숫자란,
아스키코드표의 10진수나 16진수를 말한다.

String.fromCharCode(104); // "h"
String.fromCharCode(72); // "H"
String.fromCharCode(49); // "1"
String.fromCharCode(32); // " "
String.fromCharCode(0x68); // "h"
String.fromCharCode(0x48); // "H"
String.fromCharCode(0x31); // "1"
String.fromCharCode(0x20); // " "

그리고 단어를 만들고 싶으면 여러개의 숫자를 나열하면 된다.

String.fromCharCode(104, 72, 49, 32); // "hH1 "
String.fromCharCode(0x68, 0x48, 0x31, 0x20); // "hH1 "

참고자료

charCodeAt()
fromCharCode()
Pkio님 블로그

0개의 댓글