알고리즘

char를 int로 변경

silver-w 2024. 12. 11. 23:37

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