package org.KNYtutorials.javaKNY.eclipse;
import java.util.*;
public class Study{
public static void main(String[] args)
{
String str = "12345";
int sum=0, i=0;
while(i { sum = sum+str.charAt(i) - '0'; i++; } System.out.println("sum="+sum); } } java 시작한지 얼마 안된 코린이 인데 문제가 뭐냐면 str 에 있는 12345를 다 더해야하는거임 그러면 답은 15가 나와야하는 문제인데 나는 궁금한게 저 뒤에 -'0'없이도 str.charAt(0) ,str.charAt(1) .. 이런식으로 sum에 더하면 15가 나와야 한다고 생각해서 안되길래 charAt검색하니까 뒤에 -'0' 붙이니까 15가 나오더라고..그전에는 sum이 255 이렇게 나오던데.. 저거 뒤에 -'0' 붙이는 이유가 뭐임????
![]() |
![]() |
0 은 48부터 시작합니다. 1 = 49, 2 = 50... -> 49+50+51+52+53 = 255
모든숫자에서 48을 빼주면 15 나오겠죠?
그걸 빼주기 위해 뒤에 '0' 을 빼주는 겁니다. 말씀드렸다시피 0 ASCII code 값이 48이거든요.
그럼 예시로 str.charAt(0) - '0' 는 49 - 48 이 되서 1 이되는겁니다.