자바 charAt(int i) -'0' 에 대해서 문자를 정수형으로?

728x90

charAt은 자바에 문자열에 index값을 통해 문자를 읽어오는 방법으로

 

String str = "코크입니다"; 라는 문자열이 있으면,

 

str.charAt(0); // 코

str.charAt(1); // 크

str.charAt(2); // 입

str.charAt(3); // 니

str.charAt(4); // 다

 

이렇게 문자를 가져올 수 있습니다.

 

그럼 이 문자열을 숫자로 가져와 보겠습니다.

 

String str = "12345";

 

str.charAt(0); 

 

무엇이 출력될까요?

 

네 당연히 1이 출력이 됩니다.

 

그럼 이 1은 문자의 1 일까요? 아니면 숫자 1일까요?

 

네 이것도 당연히 문자 '1' 입니다.

 

그런데 우리는 이 문자 '1'을 숫자 1로 바꾸고 싶습니다. 그럼 어떻게 해야 할까요?

 

이 문자 '1'은 char형으로 int형으로 형변환을 하면 아스키코드 값으로 변환이 됩니다.

 

즉 str.charAt(0); 은 '1'이 출력되고 이걸 int형으로 변환시키면 아스키코드값인 49가 나오게 됩니다.

 

근데 우리는 1이 필요합니다. 49에서 1이 되기 위해서는 48을 빼줘야 합니다.

 

네. 그래서 - '0'을 해주는 것 입니다. '0'은 아스키코드 48 입니다. 

 

숫자1이 49

숫자2가 50

숫자3이 51

숫자4가 52

숫자5가 53

 

여기에 '0'인 48을 빼주면

 

1

2

3

4

5

가 됩니다.

반응형