ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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()는 그 타입으로 반환

    댓글

Designed by black7375.