Please enable JavaScript in your browser to load website properly.

Click here if you'd like to learn how.

java charAt 질문 [3]

대위 불알심리학과 | 21-02-14 18:28:54 | 조회 : 176 | 추천 : -



 

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' 붙이는 이유가 뭐임????



SNS로 공유하기
  • 대령 찌레노프5년 전 | 신고

    charAt() return value는 ASCII code 값입니다. 
    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 이되는겁니다. 
  • 대위 불알심리학과5년 전 | 신고

    @찌레노프오 ㄱㅅㄱㅅ 진짜 도움됫어요
  • 중령 이런님장5년 전 | 신고

    도대체 뭔 코드가 이렇게 조잡함?
< 1 2 3 4 5 >