-
Java parseInt()와 valueOf()의 차이Language/Java 2023. 5. 22. 19:08
문자열을 정수형으로 형변환 하는 방법
문자열을 정수형으로 반환하기 위한 방법으로 2가지가 있는데
str 문자열을 입력받는다고 했을 때의 예시로Integer.parseInt(str), Integer.valueOf(str) 두가지가 있다.
이 둘의 차이점을 알아보자
간단한 예시
예시 코드
String str = "1029"; int parseInt = Integer.parseInt(str); System.out.println("parseInt = " + parseInt); System.out.println("(parseInt == 1029) = " + (parseInt == 1029)); Integer valueOf = Integer.valueOf(str); System.out.println("valueOf = " + valueOf); System.out.println("(valueOf == 1029) = " + (valueOf == 1029)); System.out.println("(valueOf == Integer.valueOf(str)) = " + (valueOf == Integer.valueOf(str))); System.out.println("(valueOf.equals(Integer.valueOf(str))) = " + (valueOf.equals(Integer.valueOf(str)))); System.out.println("(parseInt == valueOf) = " + (parseInt == valueOf));
예시 출력
parseInt = 1029 (parseInt == 1029) = true valueOf = 1029 (valueOf == 1029) = true (valueOf == Integer.valueOf(str)) = false // 단순 == 연산자로는 참 값이 아니다. (valueOf.equals(Integer.valueOf(str))) = true (parseInt == valueOf) = true
이유
Integer.valuof(str) 연산의 경우 새로운 Integer 객체를 만들어내는 것이기 떄문에
서로 다른 객체이므로 false결론
valueOf()는 그 타입의 객체 생성
parseInt()는 그 타입으로 반환