처음에는 문자(char)를 숫자(int)로 바꿀 때 문자열(String)과 차이가 없는 줄 알고 Integer.parseInt()를 썼더니 아래와 같은 에러가 떴다.
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method parseInt(String) in the type Integer is not applicable for the arguments (char)
String을 int형으로 바꿀 때는 Integer.parseInt()를 쓰지만, char를 int형으로 바꿀 때는 아래의 두 가지 방법을 사용한다.
Solution 1
char c = '1';
int n = c - '0'; // 1
'0'의 아스키코드가 48인 점을 이용하여 '1'에서 '0'을 빼주면 1 값을 구할 수 있다.
Solution 2
char c = '1';
int n = Character.getNumericValue(c); // 1
숫자 형태의 char형을 int형으로 변환해 주는 메서드이다.
c에 기호를 넣으면 -1이 출력된다.
더보기
문자도 한 번 출력해 봤는데 'a'를 넣으니 10이 출력되었다.
의아해서 찾아보았는데 아스키코드와는 무관한 것 같다.
1번이 외우기는 더 쉬운데 찾아보니 2번을 추천한다고 한다..!
반응형
'Language > Java' 카테고리의 다른 글
[Java] 자바 변수 (0) | 2025.01.04 |
---|---|
[Java] 자바 이론 정리 (0) | 2024.08.25 |
[Java] 자바 문자열 특정 위치에 문자 삽입하기 (0) | 2024.01.25 |
[Java] 자바 문자열 index 접근하기 (0) | 2024.01.12 |