public static void main(String[] args) {
String str = "12345";
int sum = 0;
for(int i=0; i < str.length(); i++) {
sum += str.charAt(i) - '0';
}
System.out.println("sum=" + sum);
}
sum += str.charAt(i); 을 하게 되면 출력 시 sum= 255가 된다.
이유는 1,2,3,4,5는 아스키코드로 49~53까지이므로 49+50+51+52+53 = 255가 되는 것이다.
sum += str.charAt(i) - '0'; 을 하게 되면 (49-48=1) + (50-48=2) + (51-48=3) + (52-48=4) + (52-49=5) 가 된다.
즉, 1+2+3+4+5 = 15
public static void main(String[] args) {
String str = "12345";
int sum = 0;
int one = Integer.parseInt(str);
for (int i = 0; i < str.length(); i++) {
sum += one % 10;
one = one / 10;
}
System.out.println("sum=" + sum);
}
for문 이전에 str값을 int형 정수로 변환해도 값을 구할 수 있다.
'Java' 카테고리의 다른 글
public, protected, default, private 접근제한자 (0) | 2021.12.31 |
---|---|
자바의 정석 연습문제 4.6 풀이 (0) | 2021.12.31 |
자바의 정석 연습문제 4.2 풀이 (0) | 2021.12.31 |
자바의 정석 연습문제 4.3 풀이 (0) | 2021.12.31 |
자바의 정석 연습문제 4.4 풀이 (0) | 2021.12.31 |
댓글