'자바 valueOf'에 해당되는 글 2건



안녕하세요. 제임스 입니다. 


최근에 자바 Number 관련 함수 중 valueOf 와 parseInt 에 대해 정리 했는데요. 

이 두 함수의 차이점은 무엇일까요? 


parseInt 함수에 대한 내용은 아래 링크 참조하세요.

2018/03/06 - [Java] - [ 자바 코딩 ] Java Integer.parseInt


valueOf 함수에 대한 내용은 아래 링크 참조하세요.

2018/03/26 - [Java] - [ 자바 코딩 ] Java Number - valueOf() 함수




Integer.parseInt() vs Integer.valueOf() 두 함수의 차이점은 무엇일까요? 


결정적인 차이점은 parseInt 함수는 int 형의 primitive data type 을 리턴하는 반면 valueOf 함수는 Integer 객체로 반환한다는 점입니다. 


1
2
int x = Integer.parseInt("5");
Integer y = Integer.valueOf("7");
cs


위 코드는 각각 int 값 5 와 Integer 값 7 을 리턴합니다. 



또 다른 한가지는 차이점이라 이야기 하긴 어렵긴 한데요...

사실 valueOf 함수가 내부적으로 parseInt 함수를 사용하고 있습니다. 

아래는 Integer.class 소스 내용 중 관련 부분 발췌했습니다. 


public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s, 10);
}

public static Integer valueOf(String s, int radix) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, radix));
}

public static Integer valueOf(String s) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, 10));
}


valueOf 함수 결과 값을 리턴 할때 이미 내부적으로 parseInt 한 값을 Integer 형으로 리턴하고 있는 것을 보실 수 있습니다. 



두 함수의 차이점 이해 하셨나요? 

비슷하지만 다른 두 함수의 리턴 값, 잘 알아 두시면 좋을 거예요. 




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


연말이 다가오니 실적때문인지... 업무가 몰리고 있습니다. 

덕분에 오랜만에 포스팅을 하게 되네요. 


오늘은 자바에서 valueOf 와 parseInt 의 차이점에 대해 정리 해보겠습니다. 


int a = Integer.valueOf("1234");
int b = Integer.parseInt("1234");
System.out.println("a = ["+a+"]");
System.out.println("b = ["+b+"]");

위와 같이 "1234" 라는 String 값을 하나는 Integer.valueOf() 로 다른 하나는 Integer.parseInt() 를 사용하여 출력 해봤습니다. 

결과는 아래와 같습니다. 


a = [1234]

b = [1234]


결과 상으로 봤을때 동일한 값을 리턴시켜주고 있습니다. 


하지만 이 둘은 약간 다릅니다. 

그 차이점을 알아 보겠습니다 .



■ valueOf


API 에서는 아래와 같이 설명하고 있습니다. 

public static Integer valueOf(String s)
                       throws NumberFormatException
Returns an Integer object holding the value of the specified String. The argument is interpreted as representing a signed decimal integer, exactly as if the argument were given to the parseInt(java.lang.String) method. The result is an Integer object that represents the integer value specified by the string.

In other words, this method returns an Integer object equal to the value of:

new Integer(Integer.parseInt(s))
Parameters:
s - the string to be parsed.
Returns:
an Integer object holding the value represented by the string argument.
Throws:
NumberFormatException - if the string cannot be parsed as an integer.


간단히 요약하자면 valueOf 의 리턴되는 결과값은 new Integer() 로 객체입니다. 



pareseInt

public static int parseInt(String s)
                    throws NumberFormatException
Parses the string argument as a signed decimal integer. The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign '-' ('\u002D') to indicate a negative value or an ASCII plus sign '+' ('\u002B') to indicate a positive value. The resulting integer value is returned, exactly as if the argument and the radix 10 were given as arguments to the parseInt(java.lang.String, int) method.
Parameters:
s - a String containing the int representation to be parsed
Returns:
the integer value represented by the argument in decimal.
Throws:
NumberFormatException - if the string does not contain a parsable integer.


요약하면 parseInt 의 리턴되는 결과값은 int 로 기본 자료형 (primitive type) 입니다. 



문자열을 변환할 경우 기본 자료형(primitive type) 으로 받아 오고 싶을때는 parseInt 를 사용하고 new Integer() 형으로 반환하고 싶으면 valueOf 를 사용하면 됩니다. 




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,