프로그래밍 언어/자바(JAVA)

자바(JAVA) - Char to Int : 문자를 숫자로 변환하기

나아가는중 2022. 1. 20. 15:53
반응형

자바에서 문자 타입의 char를 정수 타입의 int로 변환하는 방법입니다.

 

1. 자동 형변환, 강제 형변환 (X)

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

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

자동 형변환이나 강제 형변환으로 char를 int로 변경하면 문자 '1'의 아스키 코드인 49가 출력되어 올바른 방법이 아닙니다.

 

 

2. '0'을 빼주기 (ASCII code 사용) (O)

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

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

아스키 코드 표를 살펴보면 문자 0 ~ 9는 48 ~ 57의 순서로 되어있습니다.

따라서 문자 '1'의 아스키 코드에서 문자 '0'의 아스키 코드를 빼주면 원하는 숫자 1을 얻을 수 있습니다.

 

 

3. Character.getNumericValue() (O)

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

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

2의 방법을 사용해도 원하는 값을 얻을 수 있지만, 보기 좋은 코드는 아니라고 생각합니다.

자바의 라이브러리중의 Character.getNumericValue() 함수를 사용하면 같은 결과를 좀 더 깔끔한 코드로 얻을 수 있습니다.

반응형