문자열 정수의 합
https://school.programmers.co.kr/learn/courses/30/lessons/181849
- 문제 풀이 - 1 2 3 4 5 6 7 8 9 10 11 12 13 - class Solution { public int solution(String num_str) { int sum = 0; int num = Integer.parseInt(num_str); while (num > 0) { sum += num % 10; // 9 num = num / 10; // 12345678 } return sum; } } - num_str이라는 문자열을 정수로 변환하는 부분에서 문제가 발생할 수 있다.- Integer.parseInt()메서드는 문자열이 숫자로만 구성되어 있을 때만 제대로 작동한다. 만약- num_str에 숫자가 아닌 문자나 음수가 포함되어 있다면- Integer.parseInt()는 런타임 에러(- NumberFormatException)를 발생시킬 수 있다.
- 따라서 코드 실행 전에 num_str에 숫자 이외의 문자가 포함되어 있는지 검증하는 부분을 추가하는 것이 좋다.try-catch구문을 사용하여 변환 과정에서 예외를 처리하고, 숫자가 아닌 문자가 들어있을 경우에는 적절한 예외 처리를 해주는 것이 좋다.
 - 1 2 3 4 5 6 7 8 9 10 11 12 - // 문자열에 있는 각 문자를 숫자로 변환하여 합을 계산 class Solution { public int solution(String num_str) { int sum = 0; for (int i = 0; i < num_str.length(); i++) { sum += Character.getNumericValue(num_str.charAt(i)); } return sum; } } - Character.getNumericValue(): 주어진 문자의 숫자 값을 반환하는 메서드이다. 이 메서드는 주어진 문자가 숫자인 경우 해당 숫자 값을, 숫자가 아닌 경우 -1을 반환한다. 예를 들어, ‘0’은 0으로, ‘1’은 1로, ‘9’는 9로 변환된다.
 - 1 2 3 4 5 6 7 8 9 10 11 - class Solution { public int solution(String num_str) { int sum = 0; for (char c : num_str.toCharArray()) { sum += Character.getNumericValue(c); } return sum; } } - 문자열을 문자 단위로 순회하며 Character.getNumericValue()를 사용하여 각 문자를 숫자로 변환하고 그 값을 더한다.
 
 이 기사는 저작권자의  CC BY 4.0  라이센스를 따릅니다.
