1. 문자형 숫자 정수형 캐스팅
개발을 하다 보면 의도치 않게 char 형태의 숫자를 int로 변환하여 데이터를 연산 처리하거나
혹은 String 형태의 숫자를 char[] 형태로 변환한 후 각각의 숫자를 한 자리씩 int로 변환하여 데이터 처리를 하는 경우가 있습니다.
이럴 경우 매우 조심해야 해야합니다.
캐스팅 방법에 따라서
char 형태의 숫자를 int로 변환하는 과정에서 ASCII으로 변환되어 의도치 않은 데이터 연산 처리 결과를 받을 수 있습니다.
따라서 문자형(char)에서 정수형(int)으로 캐스팅할 경우 주의해서 사용해야 합니다.
2. char to int (ASCII 코드)
- (int)를 이용해 캐스팅할 경우 아스키코드로 결과를 받게 됩니다.
char charNumberZero = '0';
char charNumberOne = '1';
int intZero = (int)charNumberZero;
int intOne = (int)charNumberOne;
System.out.println(intZero); // 48
System.out.println(intOne); // 49
3. char to int (연산 활용)
- 0의 ASCII 코드 값(48)을 빼는 연산을 활용하여 숫자 그대로 변환합니다.
char charNumberZero = '0';
char charNumberOne = '1';
int intZero = charNumberZero - '0'; // 48 - 48 = 0
int intOne = charNumberOne - '0'; // 49 - 48 = 1
System.out.println(intZero); // 0
System.out.println(intOne); // 1
4. char to int ( Character.getNumericValue() )
- Character.getNumericValue() 정적 메서드를 활용하면 숫자 그대로 변환할 수 있습니다.
char charNumberZero = '0';
char charNumberOne = '1';
int intZero = Character.getNumericValue(charNumberZero);
int intOne = Character.getNumericValue(charNumberOne);
System.out.println(intZero); // 0
System.out.println(intOne); // 1
'Backend > Java' 카테고리의 다른 글
[Java] 자바 Json 데이터 변환 (Json String To Java Object) (0) | 2022.03.19 |
---|---|
[Java] 자바 콘솔 데이터 입력 받기 (Scanner) (0) | 2022.03.17 |
[Java] 자바 8 Comparator API 데이터 정렬 (0) | 2022.02.25 |
[Java] 제네릭 사용 이유 (Why do use Generic in Java?) (0) | 2022.02.24 |
[Java] 자바 제네릭 API Response 활용하기 (Response DTO) (0) | 2022.02.23 |