ASCII 테이블에서 값을 치환
char 유형의 변수를 int 데이터 유형으로 변환하려면 대부분 ASCII 테이블에서 해당 값을 가져온다.
typeCasting 사용
char A = 'A';
int x = A;
System.out.println(x); // 65
명시적 유형 캐스팅
char charA = "a";
Systme.out.println((int)charA); // 97
유니코드 인코딩 표준으로 값을 치환
getNumericValue() 사용
유형 캐스팅과 유사하게 작동하지만 ASCII 테이블을 따르는 대신 유니코드 인코딩 표준을 따른다.
특이점이 있다면, 문자에 숫자 값이 없으면 -1을 반환한다.
char char1 = '1';
char char2 = 'A';
char char3 = '*';
System.out.println(Character.getNumericValue(char1)); // 1
System.out.println(Character.getNumericValue(char2)); // 10
System.out.println(Character.getNumericValue(char3)); //-1
문자를 숫자로 치환이 안되는 경우
ParseInt('대상값', '기수') 사용
char char1 = '1';
char char2 ='A';
System.out.println(Integer.parseInt(String.valueOf(char2))); // NumberFormatException
Char인 숫자를 간단하게 정수로 바꾸는 방법
암시적 유형 캐스팅을 할때 ASCII 테이블에서 값을 가져오는 것을 이용해서 0을 빼는 것
(0의 ASCII 코드 값은 48)이므로 정수 문자에 대해서만 실질적으로 원하는 값을 추출할 수 있다.
char char1 = 'A';
System.out.println(char1); // A
System.out.println(char1 -'0'); // 17
'알고리즘' 카테고리의 다른 글
[백준 2439-별찍기] String 배열을 초기화 안하면 생기는 문제 (0) | 2024.12.09 |
---|---|
[백준 8393] n이 주어졌을 때, 1부터 n까지 합 반복문없이 (0) | 2024.12.09 |