자바에서 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이 되어버릴 것이다.

방법2. Character.getNumericValue()를 사용해 변환하기
Character.getNumericValue(char형 변수)
char numC = '9'
Character.getNumbericValues(numC); // 9
자바의 Character 클래스의 내장 함수인 Character.getNumericValue()를 사용해 형변환을 하면 된다.
'개발 > Java' 카테고리의 다른 글
[Java/자바] string to char : 문자열을 문자 배열로 변환하는 방법 (0) | 2023.06.27 |
---|
댓글