[표 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()함수보다는 당연히 성능이 떨어진다.
댓글 없음:
댓글 쓰기