Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 코딩테스트
- 티움투어
- 자바 2164
- 10813 자바
- 자바
- 2346 풍선 터뜨리기
- 10807 자바
- 2164 자바
- 백준 28278 자바
- IAM 사용자
- 파이썬
- 2798 자바
- 자바 1003
- 데보션영 3기
- dfs
- 자바 2346
- 백준
- 1010 자바
- 백준 10866 자바
- 2748 자바
- 28278 스택 2
- BFS
- 백준 1764 자바
- 1764 자바
- 그리디
- 자바 28278
- 10810 자바
- 자바 10866
- IAM Identity Center
- 백준 2346 자바
Archives
- Today
- Total
자두의 데브로그
[자바] char to int 변환하는 방법 본문
코딩테스트를 보다가 자꾸 이 부분에서 걸려서 ^^ 까먹기 전에 정리해두기!
만약 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
'코딩테스트 > Java' 카테고리의 다른 글
[자바] 백준 18511번 큰 수 구성하기 (1) | 2024.10.17 |
---|---|
[자바] 백준 7562번 나이트의 이동 (0) | 2024.10.15 |
[자바] 백준 11286번 절댓값 힙 (2) | 2024.10.09 |
[자바] 백준 11279번 최대 힙 (0) | 2024.10.09 |
[자바] 프로그래머스 폰켓몬 (1) | 2024.10.09 |