반응형
자바 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 입니다.
반응형
'Programming > JAVA' 카테고리의 다른 글
[JAVA] intellij에서 Spring 실행 시 finished with non-zero exit value 1 에러 해결 방법 (0) | 2022.04.05 |
---|---|
[JAVA] 자바 int a = 011 -> 9가 나오는 이유 ( what is "int a = 011" and not 9 why, The literal 09 of type int is out of range ) (0) | 2022.03.16 |
[JAVA] 윈도우에서 이클립스 삭제하는 방법 (eclipse uninstall) (0) | 2022.02.17 |
[JAVA] 자바 로또 프로그램 만들기 (배열 이용, 로또 번호 추출) (8) | 2020.03.17 |
[JAVA] 자바 do while 반복문 (1) | 2020.03.17 |