본문 바로가기

old drawer/Java

[Java] String -> int /// int -> String

String : 문자열  ["123"]

int : 숫자          [ 123 ]

입니다.

그런데 Stringint로 바꾸려고 합니다.

뭐 간단하죠~


String str = "123";                //string "123"선언

System.out.println((int)str);  //"123"을 123으로 바꾼다.


!!! 그런데 오류가 납니다.

System.out.println((int)str);

왜 오류가 날까요?

메모리 차이때문입니다. 메모리 차이때문에 손실이 발생할수 있기때문이죠.(자세한건 네이버ㅋ)


String 은 (문자수)byte 

String = char[]

char = 1byte

String 1*문자수 = 문자수

정확하지 않을수있습니다. 아시는분은 댓글로..


int 는 4byte


그럼 어떻게 할까요?

System.out.println((int)str);

이거를

System.out.println(Integer.valueOf(str));


쉽죠?

반대로 int -> String

System.out.println(Integer.toString(str)); 또는

System.out.println(String.valueOf(str));


String -> char는? (char:1byte입니다.)

String str = "abc";

str.charAt(변환한 문자의 위치);

위치는

a : 0

b : 1

c : 2

0부터 시작합니다.


그런데 이렇게 힘들게 변환해서 뭐할까요?


모드만들다가 필요한경우가 생깁니다.ㅋ

예를들어

String형식은 연산을 할수없습니다.


String s = "120";

s+120 (불가능)


하지만 int형식은 연산이 가능합니다.


int i = 120;

i+120 (가능)


정리:

String -> int:

Integer.valueOf(String형식)


int -> String:

Integer.toString(int형식)

String.valueOf(int형식)


String -> char:

str.charAt(String형식의 변환한 문자의 위치);


많이 중요한건 아니니 모르시거나 이해가 안되시면 그냥 넘어가세요ㅋ

그리고 틀린부분있으면 지적해주세요.

'old drawer > Java' 카테고리의 다른 글

[Java] 자료형  (0) 2011.06.17
[Java] enum 사용법  (0) 2011.06.17
[Java] Thread.interrupt() 사용법  (0) 2011.06.11
[Java] Runable과 Thread의 차이점  (0) 2011.06.11
[Java] Painting in AWT and Swing  (0) 2011.06.08