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


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

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


오늘은 자바에서 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 등의 프로그래밍 언어를 소개 합니다.

,