Development/JAVA
[JAVA] 자바 charAt()의 문자('1'~'9')를 정수형과 비교(if) 방법
KoreaNirsa
2022. 3. 16. 00:31
반응형
자바 charAt()의 문자를 정수형과 비교(if) 방법
아래의 번호는 3가지 방법이 있다는 뜻이 아닙니다. 3가지 내용들을 확인 해보면 어째서 이렇게 비교해야 하는지 이해하실 수 있습니다.
1. charAt()의 리턴 타입은 char형 입니다.
자바의 charAt()은 리턴 타입이 char형입니다. 아래 예시를 기준으로 반환값이 숫자로 보일테지만 실제로는 '1', '5', '8', '9'과 같습니다. 즉, 아래와 같은 코드가 있을 때 반환값은 '1' 입니다.

2. 아스키 코드표(ASCII TABLE)을 확인하고 10진과 문자를 확인하여 비교 해보세요.
아래는 아스키 코드표의 일부 입니다. 10진법으로 숫자 48은 문자 '0' , 숫자 49는 문자 '1'으로 되어있습니다. 그렇다면 정수형과 문자(1~9)를 비교하기 위해서는 48을 빼거나, 똑같은 문자형인 '0'을 뺀다면 숫자와 문자를 비교할 수 있음을 알 수 있습니다.
'a', 'B'와 같은 문자도 아스키 코드표를 검색 후 확인하여 볼 수 있으며, 아스키 코드표의 특징은 숫자 형태의 문자 또는 알파벳 문자가 순서대로 나열될 때 10진의 숫자가 1씩 오른다는 점 입니다.
| 10진 | 문자 |
| 48 | '0' |
| 49 | '1' |
| 50 | '2' |
| 51 | '3' |
| 52 | '4' |
| 53 | '5' |
| 54 | '6' |
| 55 | '7' |
| 56 | '8' |
| 57 | '9' |
3. 위의 1,2번을 참고하여 직접 코드를 확인 해보세요.
아래의 예시를 보겠습니다. 위의 아스키 코드표와 아래 예시 코드를 함께 보시면 됩니다.
- stringSum.charAt(0)의 값은 '1' 이며 10진수로 49 입니다.
- 49 - 48 = 1 이므로 첫번째 조건식은 true 입니다.
- stringSum.charAt(1)의 값은 '5' 이며 10진수로 53 입니다.
- '0'은 10진수로 48 입니다.
- 53 - 48 = 5 이므로 두번째 조건식은 true 입니다.
- stringSum.charAt(2)의 값은 '8' 이며 10진수로 56 입니다.
- 56 - 48 = 8 이므로 세번째 조건식은 true 입니다.

반응형