Programming/JAVA

[JAVA] 자바 charAt()의 문자('1'~'9')를 정수형과 비교(if) 방법

Nirsa 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번을 참고하여 직접 코드를 확인 해보세요.

아래의 예시를 보겠습니다. 위의 아스키 코드표와 아래 예시 코드를 함께 보시면 됩니다.

  1. stringSum.charAt(0)의 값은 '1' 이며 10진수로 49 입니다.
  2. 49 - 48 = 1 이므로 첫번째 조건식은 true 입니다.
  3. stringSum.charAt(1)의 값은 '5' 이며 10진수로 53 입니다.
  4. '0'은 10진수로 48 입니다.
  5. 53 - 48 = 5 이므로 두번째 조건식은 true 입니다.
  6. stringSum.charAt(2)의 값은 '8' 이며 10진수로 56 입니다.
  7. 56 - 48 = 8 이므로 세번째 조건식은 true 입니다.

 

반응형