자두의 데브로그

[자바] char to int 변환하는 방법 본문

코딩테스트/Java

[자바] char to int 변환하는 방법

왕자두 2024. 10. 12. 22:24

코딩테스트를 보다가 자꾸 이 부분에서 걸려서 ^^ 까먹기 전에 정리해두기!

 

만약 1이 char로 들어왔고 이를 int로 변환할 때 자동/강제 형변환으로 타입을 변환하면 아래와 같은 결과가 나온다.

char c = '1';
int n = (int)c;

System.out.println(n); // 결과: 49

 

나의 경우에는 '5'를 형변환했는데 계속 53이 나와서 상당히 곤란했었다. 위와 같은 이유였겠지..?

 

그래서 나는 굳이 String으로 char을 바꾸고 이걸 Integer로 바꾸는 상당히 귀찮은 작업을 했다. 이렇게 해도 맞을지는 모르겠지만..

 

그치만 더 좋은 방법을 발견했기 때문에 아래 방법을 소개해보려고 한다.

 

1. '0' 빼기

위에서 49가 나온 이유는 아스키 코드 값이 나오기 때문이니까 int로 변환한 '0'을 빼면 원하는 1이 나온다.

char c = '1';
int n = (int)c - (int)'0';
// or
int n = c - '0';

System.out.println(n); // 결과: 1

 

2. Character.getNumericValue(char)

Character 라이브러리의 getNumericValue(c)를 통해 char를 int로 변환한 값을 추출할 수 있다.

char c = '1';
int n = Character.getNumericValue(c);

System.out.println(n); // 결과: 1