https://www.acmicpc.net/problem/2588
위 문제를 보면 385, 472 등 입력받은 정수에 대해 곱셈 과정을 보여줘야 하기때문에 해당 정수를 한자릿수 씩 떼어낼 수 있어야 한다.
처음엔 /, % 연산자를 이용해서 각 자릿수를 구해볼까도 생각해봤는데 charAt() 메서드를 이용하면 더욱 더 쉽게 구할 수 있다.
결론부터 말하자면 charAt() 메서드는 문자열의 index값 통해 문자를 읽어오는 메서드이다.
예를 들자면 , String str = "가천대학교" 라는 문자열이 있으면
str.charAt(0) = '가'
str.charAt(1) = '천'
str.charAt(2) = '대'
str.charAt(3) = '학'
str.charAt(4) = '교'
이렇게 각 문자열 index에 해당하는 문자를 가져온다.
그런데
보통 이 메서드는 정수를 뽑는데 많이 이용된다.
만약 String str = "12345" 라면 charAt(0) = '1' 일 것이다. 그러나 이것은 문자 1이다.
int형으로 형변환을 하면 아스키코드 값인 49가 나온다. 그래서 int형 1을 얻기위해 아스키코드값 48에 해당하는 -'0'을 해준다.
int a = (charAt() - '0');
따라서 위와 같은 수식은 숫자 문자열에서 하나의 정수로 뽑고 싶을때 많이 사용하는 수식이다. 기억하도록!

'Java & Kotlin' 카테고리의 다른 글
| [JAVA] final 키워드 정복하기! (0) | 2025.10.16 |
|---|---|
| [JAVA] 정적 중첩 클래스를 활용하여 계층간 독립적인 Validation을 적용해보자 (0) | 2025.10.16 |
| [JAVA] 정적 팩토리 메서드(Static Factory Method)란? (버거 먹고싶은 작성자와 스프링의 반환 방식을 곁들인) (0) | 2025.10.16 |
| [JAVA] String trim() 메서드 : 문자열의 앞뒤에 있는 모든 공백 문자를 제거해주는 아주 좋은친구 소개 (0) | 2024.11.09 |
| [JAVA] 빠른 입출력을 위한 BufferdReader, BufferWriter (0) | 2024.10.16 |