이전 포스트에서 설명한 포장형(wrapper class)의 생성자를 이용하면 문자열을 기본형 값으로 바꿀 수 있다.
[표 1] 포장형의 기본형 값을 반환하는 객체 메쏘드
메소드명 | 기능 |
byteValue() | byte값을 반환한다. |
shortValue() | short값을 반환한다. |
intValue() | int값을 반환한다. |
longValue() | long값을 반환한다. |
floatValue() | float값을 반환한다. |
doubleValue() | double값을 반환한다. |
예를 들어서 다음과 같이 Integer 형 객체에서 다양한 기본형 값을 얻을 수 있다.
package tut02;public class Tut02 {public static void main(String[] args) {int ia = new Integer("1234567").intValue();float fa = new Integer("1234567").floatValue();short sa = new Integer("1234567").shortValue(); //(*)System.out.println(ia);System.out.println(fa);System.out.println(sa);}} |
실행 결과 |
12345671234567.0-10617 |
위의 (*)에서와 같이 손실 변환(lossy conversion)의 경우에도 별다른 경고나 오류를 발생하지 않는다. 따라서 같은 형의 데이터의 변환에만 쓰는 것이 바람직하다.
포장형으로 부터 기본형 값을 얻는 메소드로 parse 로 시작하는 정적 메소드들이 있다. 이 메소드를 이용하면 정수형을 반환하는 메소드는 기수를 지정해 줄 수도 있다.
[표 2] 포장형의 기본형 값을 반환하는 메쏘드
메소드명 | 기능 |
Byte.parseByte(String) Byte.parseByte(String, radix) | 문자열을 byte값으로 변환한다. 기수 radix인 문자열을 byte값으로 변환한다. |
Short.parseShort(String) Short.parseShort(String, radix) | 문자열을 short값으로 변환한다. 기수 radix인 문자열을 short값으로 변환한다. |
Integer.parseInt(String) Integer.parseInt(String, radix) | 문자열을 int값으로 변환한다. 기수 radix인 문자열을 int값으로 변환한다. |
Long.parseLong(String) Long.parseLong(String, radix) | 문자열을 long값으로 변환한다. 기수 radix인 문자열을 long값으로 변환한다. |
Float.parseFloat(String) | 문자열을 float값으로 변환한다. |
Double.parseDouble(String) | 문자열을 double값으로 변환한다. |
실제 프로그램에서는 주로 [표 2]의 정적 메소드를 자주 사용하게 된다.
package tut02;public class Tut02 {public static void main(String[] args) {int ia = Integer.parseInt("1234567");int ib = Integer.parseInt("11110010",2); //이진수int ic = Integer.parseInt("1ab3f",16); //십육진수System.out.println(ia);System.out.println(ib);System.out.println(ic);}} |
실행 결과 |
1234567242109375 |
포장형 객체를 반환하는 valueOf() 이라는 정적 메소드도 있다.
[표 3] 문자열로 부터 포장형 객체를 반환하는 메쏘드
메소드명 | 기능 |
Byte.valueOf(String) Byte.valueOf(String,radix) Byte.valueOf(byte) | 문자열을 Byte 객체로 변환 기수 radix인 문자열을 Byte 객체로 변환한다. byte값을 Byte 객체로 박싱 |
Short.valueOf(String) Short.valueOf(String,radix) Short.valueOf(short) | 문자열을 Short 객체로 변환 기수 radix인 문자열을 Short 객체로 변환한다. short값을 Short 객체로 박싱 |
Integer.valueOf(String) Integer.valueOf(String,radix) Integer.valueOf(int) | 문자열을 Integer 객체로 변환 기수 radix인 문자열을 Interger 객체로 변환한다. int값을 Interger 객체로 박싱 |
Long.valueOf(String) Long.valueOf(String,radix) Long.valueOf(long) | 문자열을 Long 객체로 변환 기수 radix인 문자열을 Long 객체로 변환한다. long값을 Long 객체로 박싱 |
Float.valueOf(String) Float.valueOf(float) | 문자열을 Float 객체로 변환한다. float값을 FLoat 객체로 박싱 |
Double.valueOf(String) Double.valueOf(float) | 문자열을 Double 객체로 변환한다. float값을 Double 객체로 박싱 |
예를 들어서
int ia = Integer.valueOf("1234567"); |
이렇게 하면 자동 언박싱이 일어나서 변수 ia에 1234567이란 값이 저장된다. 하지만 parseInt()함수보다는 당연히 성능이 떨어진다.
'프로그래밍언어.Lib > 자바(JAVA)' 카테고리의 다른 글
자바(JAVA)의 접근 지정자 (access modifier) (0) | 2015.07.10 |
---|---|
자바(JAVA)의 추상 클래스 (abstract class) (0) | 2015.07.10 |
자바(JAVA)의 wrapper클래스,박싱(boxing),언박싱(unboxing) (0) | 2015.07.09 |
자바(JAVA)의 증감 연산자 (0) | 2015.07.08 |
자바(JAVA)의 산술 연산자와 형변환 규칙 (0) | 2015.07.08 |