JAVA(폐쇄)/독학내용
자바(JAVA) charAt(int i)-'0' 는 뭘까?
진사담
2023. 3. 22. 00:07
728x90
반응형
백준 문제
https://hobby-it-learn.tistory.com/24
자바(JAVA) 백준 - 2588 (곱셈)
이번 문제는 1, 2를 입력하여 곱셈의 과정인 3, 4, 5 를 보여주고 정답까지 맞추는 프로그램이다. 여기서 모듈러를 사용하였는데 B에 들어오는 입력값을 각 자릿수 별로 얻어와야한다. 일의 자리 5
hobby-it-learn.tistory.com
요놈을 풀다가 다른 사람들은 배열로 풀기에
구경 하다
System.out.println(A * (b[2]-'0'));
-'0'이란 애를 발견했다...
이놈은 무엇일까.. 고민을 하고 검색 해본 결과
CharAt
CharAt 함수 때문이었는데,
이 함수는 문자열에서 index를 통해 특정 위치의 문자를 반환하는 함수이다.
매개변수는 int형으로 받고 리턴값은 char형으로 반환된다.
먼저 아스키 코드를 봐야하는데
아스키 코드에서 숫자 0~9까지는 48~57이다.
CharAt으로 반환받은 '1'은 int형이 아닌 char형, 즉 int로 변환시키면 아스키코드값인 49로 변환되기 때문.
'0'(char) -> 48
'1'(char) -> 49
'2'(char) -> 50
'3'(char) -> 51
'4'(char) -> 52
따라서 (int) num.charAt(0) + (int) num.charAt(1) 의 값은 99으로 출력된다.
이 때 -'0'(48)을 해주면
48 - 48('0') = 0
49 - 48('0') = 1
50 - 48('0') = 2
51 - 48('0') = 3
52 - 48('0') = 4
CharAt(int i) - '0'을 통해 char형의 문자들을 int형으로 변환시킬 수 있다.
728x90
반응형