반응형
자바에서 문자 타입의 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() 함수를 사용하면 같은 결과를 좀 더 깔끔한 코드로 얻을 수 있습니다.
반응형
'프로그래밍 언어 > 자바(JAVA)' 카테고리의 다른 글
자바(JAVA) - 람다식(Lambda Expression) (0) | 2022.01.21 |
---|---|
자바(JAVA) - 익명 클래스 (Anonymous class) (0) | 2022.01.21 |
자바(JAVA) - FileReader, FileWriter 파일 읽기, 쓰기 (0) | 2021.12.21 |
자바(JAVA) - 입출력 스트림 (0) | 2021.12.19 |
자바(JAVA) - 폴더 파일명 변경 (0) | 2021.12.18 |