
public int solution(String my_string) {
int answer = 0;
for (int i : my_string.toCharArray()){
if (i - '0' < 10) {
answer += (i - '0');
}
}
return answer;
}
public int solution(String my_string) {
int answer = 0;
for (char c : my_string.toCharArray()) {
if (Character.isDigit(c)) {
answer += c - '0';
}
}
return answer;
}
i - '0' < 10 → Character.isDigit(c) 사용하여 가독성 증가.int i 대신 char c 사용이 더 직관적이다.Character.isDigit(c)는 문자가 숫자(0~9)인지 판별하는 메서드이다.
boolean isNumber = Character.isDigit(c);
c가 숫자(0~9) 문자이면 true를 반환.c가 알파벳, 특수문자 등이면 false를 반환.public int solution(String my_string) {
return my_string.chars()
.map(c -> Character.isDigit(c) ? c - '0' : 0)
.sum();
}
toCharArray() 대신 .chars() 사용 → 더 직관적이고 성능이 좋다.Character.isDigit(c) 사용 → 숫자인지 확인하는 더 정확한 방법이다..map()에서 숫자가 아닌 문자는 0으로 처리 → 불필요한 연산 제거..sum()으로 자동 합산 → answer 변수를 따로 만들 필요 없다.