본문 바로가기
개발/Java

[Java/자바] char to int : 문자를 정수로 변환하는 방법

by 감자감자곰 2023. 7. 19.

자바에서 char 타입의 숫자 문자를 int로 형변환할 때 변수 앞에 (int)를 붙이면 원하는 값을 얻지 못한다(결괏값으로 char 타입의 숫자 문자의 ASCII 값이 나오기 때문). 이 게시글에서는 char 타입의 숫자 문자를 int 타입으로 변환하는 두 가지 방법을 소개하고자 한다.


방법1. ASCII 코드를 활용해 변환하기

char형 변수 - '0'

char numC = '9';
int numI = numC - '0'; // 57(문자 '9'의 ASCII 코드값) - 48(문자 '0'의 ASCII 코드값) = 9

이때 '0'을 빼주는 이유는 무엇일까?

 

ASCII 코드란, 문자를 숫자로 표현하는 표준 코드 체계이다. ASCII 코드는 0~127까지의 정수 값을 갖고 있고, 각 정수 값은 특정 문자에 대응된다. 예를 들어, 문자 'A'의 ASCII 코드는 아래의 표에서도 볼 수 있듯이 65이다. 컴퓨터는 문자를 숫자로 바꿔 이해하기에 이 코드가 필요하다.

 

위의 예시에서 우리는 char 값인 '9'를 숫자 9 그 자체로 변환하고자 한다. 이때, ASCII 코드 값이 48인 '0'을 빼줌으로써 해당 숫자 문자(char)에 대응하는 숫자 값(int)을 얻을 수 있다. 만약 예시에서 '0'을 빼주지 않는다면 numI의 값은 numC의 ASCII 코드 값인 57이 되어버릴 것이다.

ASCII 코드표 ('10진'에 적혀있는 숫자들이 '문자'의 ASCII 값에 해당한다)


방법2. Character.getNumericValue()를 사용해 변환하기

Character.getNumericValue(char형 변수)

char numC = '9'
Character.getNumbericValues(numC); // 9

자바의 Character 클래스의 내장 함수인 Character.getNumericValue()를 사용해 형변환을 하면 된다.

댓글