(Java/자바) 문자열을 정수로 변환 - parseInt(), valueOf()

문자열(String)을 정수로 변환하는 작업은 자주 있는 일입니다. 반대로 정수를 문자열로 변환하는 것도 마찬가지겠죠 

이번 포스팅에선 문자열을 정수로 변환해주는 메서드 parseInt() 와 valueOf() 에 대해 알아보고 이 둘의 차이점에 대해 설명해보고자합니다.


Integer.parseInt()

parseInt() 메서드는 파라미터로 숫자로 변환할 문자열을 입력받고, 기본형인 int(정수)로 변환합니다. 

두번째 매개변수가 생략된 경우 10진수로 변환된 값을 반환하고, 10진수가 아닌 다른 진수로 변환하고 싶으면 두 번째 매개변수에 변환하고자 하는 진수를 입력합니다.

public class ParseInt {
	public static void main(String[] args) {
		String str1 = "1234";
		String str2 = "-1234";
		String str3 = "ABCD";
		String str4 = "1000";
		
		int num1 = Integer.parseInt(str1);
		int num2 = Integer.parseInt(str2);
		int num3 = Integer.parseInt(str3, 32);
		int num4 = Integer.parseInt(str4, 16);
		
	    System.out.println(num1);
	    System.out.println(num2);
	    System.out.println(num3);
	    System.out.println(num4);
	}
}

출력 결과

 

또한 다른 타입의 숫자를 바꾸고 싶다면 다음처럼 사용할 수 있습니다.
정수(int) Integer.parseInt()
실수(float) Float.parseFloat()
실수(double) Double.parseDouble()
롱(long) Long.parseLong()

 


Integer.valueOf()

valueOf() 메서드 파라미터로 숫자로 변환할 문자열을 입력받고, 참조형인 new Integer(정수)로 변환합니다.

valueOf() 메서드는 문자열의 값을 정수형(int)로 변환한 다음 Integer Object(객체)로 만들어서 반환합니다.

즉, new Integer(Integer.parseInt(string)) 값이 리턴됩니다.

 

public class ValueOf {
	public static void main(String[] args) {
		String str1 = "1234";
		String str2 = "-1234";
		String str3 = "ABCD";
		String str4 = "1000";
		
		int num1 = Integer.valueOf(str1);
		int num2 = Integer.valueOf(str2);
		int num3 = Integer.valueOf(str3, 32);
		int num4 = Integer.valueOf(str4, 16);
		
	    System.out.println(num1);
	    System.out.println(num2);
	    System.out.println(num3);
	    System.out.println(num4);
	}

}

출력결과


parseInt()와 valueOf()의 차이점기본형으로 반환하냐, 참조형으로 반환하냐의 차이이며 다음과 같이 필요에 따라 사용하면 됩니다.

기본형 int 로 반환하고 싶을 때 = Integer.parseInt()
참조형 new Integer() 로 반환하고 싶을 때 = Integer.valueOf() 

 

기본형과 참조형에 대해서는 아래 포스팅에 설명해놓았으니 읽어보시면 도움되실겁니다.

 

Java - 변수의 타입 (기본형과 자료형)

data의 type 우리가 주로 사용하는 값 ( data ) 의 종류 ( type )은 크게 "문자와 숫자"로 나눌 수 있으며, 숫자는 다시 "정수와 실수"로 나눌 수 있습니다. 이런 값( data )의 종류 ( type )에 따라 값이 저장

hstory0208.tistory.com