울음참고 개발공부
728x90

 

 

parse 메서드

 

: 문자열을 다양한 타입으로 변환하는 메서드 

 

 

  1. Integer.parseInt(String s):
    • 문자열을 정수로 변환합니다.
    • 예를 들어, "123" 문자열은 123 정수로 변환됩니다.
    • 변환 중에 문자열이 올바른 숫자 형식이 아니라면 NumberFormatException이 발생합니다.
  2. Double.parseDouble(String s):
    • 문자열을 배정밀도 부동 소수점 숫자로 변환합니다.
    • 예를 들어, "3.14" 문자열은 3.14 배정밀도 부동 소수점 숫자로 변환됩니다.
    • 변환 중에 문자열이 올바른 숫자 형식이 아니라면 NumberFormatException이 발생합니다.
  3. Boolean.parseBoolean(String s):
    • 문자열을 논리값으로 변환합니다.
    • 대소문자를 구분하지 않고, "true" 문자열은 true로, 그 외의 문자열은 false로 변환됩니다.
  4. Long.parseLong(String s):
    • 문자열을 long 타입으로 변환합니다.
    • 예를 들어, "123456789" 문자열은 123456789L long 값으로 변환됩니다.
  5. Float.parseFloat(String s):
    • 문자열을 단정밀도 부동 소수점 숫자로 변환합니다.
    • 예를 들어, "2.71828" 문자열은 2.71828f 단정밀도 부동 소수점 숫자로 변환됩니다.

 

 

 


 

 

Interger.parseInt(String s)와 Integer.valueOf(String s)의 차이 

 

 

 

  1. 반환 값의 타입:
    • parseInt: int를 반환합니다. 즉, 정수 값을 반환합니다.
    • valueOf: Integer 객체를 반환합니다. 즉, 정수 값을 감싼 래퍼 클래스 객체를 반환합니다.
  2. Caching (캐싱):
    • valueOf는 일정 범위의 값들에 대해서는 내부적으로 캐싱을 사용합니다. 따라서 같은 값에 대해 여러 번 호출되어도 같은 객체를 반환하므로, 메모리 절약 효과가 있을 수 있습니다.
    • parseInt는 캐싱을 사용하지 않고 매번 새로운 int 값을 생성합니다.
  3. null 처리:
    • parseInt: null 문자열이나 숫자 형식이 아닌 문자열을 변환하려고 하면 NumberFormatException이 발생합니다.
    • valueOf: null 문자열이나 숫자 형식이 아닌 문자열을 변환하려고 하면 NumberFormatException 대신 NullPointerException이 발생합니다.
  4. 사용 목적:
    • parseInt는 주로 기본 int 타입의 값이 필요한 상황에서 사용됩니다.
    • valueOf는 객체 지향적인 처리가 필요한 경우에 사용됩니다. 예를 들어, 제네릭 컬렉션에 저장하거나 메서드의 인자로 전달할 때 유용합니다.
  5. 예외 처리:
    • parseInt는 변환할 수 없는 문자열이 들어오면 NumberFormatException 예외가 발생합니다.
    • valueOf는 변환할 수 없는 문자열이 들어오면 NumberFormatException 예외 대신 NumberFormatException를 상속받은 IllegalArgumentException 예외가 발생합니다.

 

 

요약하면, parseInt는 간단하게 정수 값을 얻을 때 사용하며, valueOf는 좀 더 객체 지향적인 처리나 특정 상황에서의 캐싱 효과를 고려할 때 사용될 수 있습니다.

 

 

 


 

문자열 변환 메서드들의 차이점

 

toString() / parseInt() / valueOf() 

 

  1. toString() 메서드:
    • toString() 메서드는 자바의 모든 클래스가 상속하는 Object 클래스에 정의된 메서드입니다.
    • 이 메서드는 객체를 문자열로 표현하는 역할을 합니다. 객체의 내용이나 속성을 텍스트로 변환하여 반환합니다.
    • 객체의 내부 정보를 확인하거나, 디버깅, 로깅, 출력 등의 목적으로 사용됩니다.
    • 클래스의 개발자가 toString() 메서드를 오버라이딩하여 객체의 표현 방식을 정의할 수 있습니다.
    • 대부분의 자바 내장 클래스들은 toString()을 오버라이딩하여 읽기 좋은 형태로 객체를 표현합니다.
  2. parseInt() 메서드:
    • parseInt() 메서드는 정적 메서드로서 Integer 클래스에서 제공하는 메서드 중 하나입니다.
    • 문자열을 파싱하여 해당 문자열을 정수로 변환합니다.
    • 파라미터로 문자열을 받아들이고, 해당 문자열을 정수로 변환한 값을 반환합니다.
    • 변환 중에 문자열이 숫자 형식이 아니라면 NumberFormatException 예외가 발생합니다.
  3. valueOf() 메서드:
    • valueOf() 메서드는 정적 메서드로서 여러 클래스에서 제공하는 메서드 중 하나입니다.
    • 주로 기본 타입 값을 래퍼 클래스 객체로 변환하는 역할을 합니다. (Integer, Double, Boolean 등)
    • 파라미터로 문자열을 받아들이고, 해당 문자열을 기본 타입의 값으로 변환한 후, 해당 값을 래퍼 클래스 객체로 감싸서 반환합니다.
    • 변환 중에 문자열이 숫자 형식이 아니라면 NumberFormatException 예외가 발생합니다.

 

 

 

[ 비교 예제 ]

 

// toString() 예시
public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + "}";
    }

    public static void main(String[] args) {
        Person person = new Person("John", 30);
        System.out.println(person.toString()); // 출력: Person{name='John', age=30}
    }
}

// parseInt() 예시
public class ParseExample {
    public static void main(String[] args) {
        String numStr = "123";
        int parsedInt = Integer.parseInt(numStr);
        System.out.println(parsedInt); // 출력: 123
    }
}

// valueOf() 예시
public class ValueOfExample {
    public static void main(String[] args) {
        String numStr = "456";
        Integer valueOfInt = Integer.valueOf(numStr);
        System.out.println(valueOfInt); // 출력: 456
    }
}

 

 

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!