본문 바로가기
Java

자바의 정석 연습문제 4.7 풀이

by 오늘이 내가 된다. 2021. 12. 31.

	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형 정수로 변환해도 값을 구할 수 있다.

댓글