PRACTICE/JAVA
[프로그래머스] 숨어있는 숫자의 덧셈(1)
j1ngerhead
2024. 9. 18. 01:39
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/120851
class Solution {
public int solution(String my_string) {
int sum = 0;
// 문자열을 한 글자씩 순회하며 숫자인지 확인
for (int i = 0; i < my_string.length(); i++) {
char ch = my_string.charAt(i);
if (Character.isDigit(ch)) {
// 숫자인 경우 정수로 변환하여 더해줌
sum += ch - '0'; // '0'을 빼면 해당 문자의 숫자 값이 됨
}
}
return sum;
}
}
자바에서는 Character.isDigit() 메서드로 해당 문자가 숫자인지 확인 가능
++ 자바에서 문자(char)는 내부적으로 숫자(아스키 코드 또는 유니코드 값)로 저장된다.
문자를 숫자로 변환하려면 이 아스키 코드 값에서 '0'(48)을 뺀다.
ex ) '1'의 아스키 값은 49 → '1' - '0'은 49 - 48 = 1이 되어 숫자 1이 된다.
결과적으로 sum += ch - '0'; 의 의미
ㄴ ch가 숫자 문자일 때, 이를 정수로 변환하려고
해당 문자의 아스키 값에서 '0'(48)을 빼면 문자 '0'에서 '9'까지의 문자들이
각각 0에서 9 사이의 정수로 변환되고 그 값을 합계 구할 변수 sum에 집어 넣는 것임
320x100