자바(Java)/JAVA 2SE

자바의 데이터형 변환

본클라쓰 2010. 11. 29. 20:23

 

자바에서 데이터형의 변환은 Conversion방식과 Casting방식 두 가지가 있다.

 

 

■ Conversion

 

 컨버전은 작은 데이터형에 큰 데이터형의 값을 할당할 때 생기는 변환이다. int형으로 선언된 변수에 byte형으로 선언된 변수의 값을 할당하면 자동으로 int형 변수에는 byte값이 int형으로 변환된 값으로 할당된다. 컨버전 방식의 형 변환은 자동적으로 이루어진다.

 

byte → short, char → int → long → float → double

 

 

 

■ Casting

 

 큰 데이터 형을 작은 데이터형에 넣을 때는 명시적으로 데이터형의 변환을 지정해야 한다. 이 때 형 변환을 지정하지 않는다면 컴파일 에러가 발생되며 값이 할당되지 않는다. 아래와 같은 코드가 Casting 이 적용되는 형 변환이다.

 

형 변환이 발생하지 않는 예)

int a = 1000;

byte b = a; 

 

형 변환이 발생하는 예)

int a = 1000;

byte b = (byte)a; 

 

이 때 자료형을 넘는 데이터는 소실된다.

 

 

 

※ char형 데이터를 int형으로 변환하기

 

 char형 데이터를 int형으로 변환시킬 때에는 char형 데이터의 유니코드 값이 int형으로 변환된다.

public static void main(String[] args) {

 

    char c = 'a';
    int value = (int)c;
       
    System.out.println(c);   // 'a' 출력
    System.out.println(value);  // '97' 출력


}

 

 

 

※ 문자열의 데이터형 변환

 

 데이터가 문자열인 경우 자바에서는 객체로 접근한다. 따라서 컨버전이나 캐스팅으로는 형 변환을 할 수 없다. 문자열의 형 변환을 시켜야 하는 경우에는 Wrapper 객체를 사용해야 한다. int형에서 String형으로 변환을 할 때는 String 객체의 valueOf() 메소드를 사용한다.

 

int value = 20;

String str = String.valueOf(value); 

 

 String형에서 int형으로 변환할 때는 Integer객체의 parseInt() 메소드를 사용하여 변환시킨다. 이 때 변환하고자 하는 문자열이 숫자값이 되어야 하며 문자열이 숫자값이 아닌 경우 NumberFormatException이 발생해 throws해 버린다.

 

String str = "20";

int value = Integer.parseInt(str); 

 

'자바(Java) > JAVA 2SE' 카테고리의 다른 글

반복문 - for 문  (0) 2010.12.01
자바 에러의 종류와 설명  (0) 2010.12.01
자바의 변수와 데이터 타입  (0) 2010.11.29
추상클래스와 인터페이스의 사용  (0) 2010.11.29
다형성(Polymorphism)이란?  (0) 2010.11.29