티스토리 뷰
1) 첫 번째 세 자리 수는 int 타입, 두 번째 세 자리 수는 String 타입으로 입력 받기
2) A와 String 타입 문자열 B (세 자리 수) 의 각 자리를 곱하기
⇨ 이때, 자바에서 문자형(char) 데이터끼리 연산을 하게 되면,
실제로는 그 문자의 아스키 코드 값이 사용되어 연산이 수행된다는 점에 유의!
예를 들어 B가 "385" 일 때, B.charAt(2) - '0' 은 '5' - '0' 과 동일하다.
그리고 이러한 연산의 결과는 자동으로 int 타입으로 처리된다.
왜냐구?
문자에서 '0'을 빼는 연산이 일어날 때, 그 결과는 항상 int 타입으로 변환.
이는 자바 뿐만 아니라, 여러 프로그래밍 언어에서 문자형 데이터를 처리하는 표준 방식 중 하나가 되겠다.
'2' - '0' 연산에서 '2'와 '0'은 각각의 아스키 코드 값인 50과 48로 처리되며, 이 두 값을 빼면 결과는 정수 2
이 결과는 자연스레 int 타입으로 처리되고,
이후에 이 결과에 변수 A의 값(역시 int 타입)을 곱하면, 전체 연산 결과도 int 타입이 되는 것.
즉, 문자에서 '0'을 빼는 것이 실제 숫자 값을 얻는 방법이며, 이때 연산 결과는 자동으로 int 타입으로 처리된다.
ASCII 코드를 사용해 '0'을 빼지 않고,
문자를 숫자로 변환하는 방법은 없을까? (Char to Int)
자바 라이브러리 중 Character.getNumericValue() 함수를 사용하면 깔끔하게 해결 가능!
String B는 385.
그 중 3번째 문자를 추출해 숫자로 변환.
⇨ 음 훨씬 깨끗하다. 그런데.. 못 외울듯 〒▽〒
Character.getNumericValue('5')
// 요런 식으로 char 숫자 한 글자 추출 가능 (두 글자는 안 됨^^)
'알고리즘 공부⛏️' 카테고리의 다른 글
💡(Java)배열 두 배 만들기 (1) | 2024.11.09 |
---|---|
⛏️ (Java)백준 11382 : 꼬마 정민 (0) | 2024.03.13 |
💡(Java)중복된 숫자 개수 (0) | 2024.03.13 |
💡(Java)배열 뒤집기 (0) | 2024.03.13 |
💡(Java)배열 원소의 길이 (0) | 2024.03.13 |