Java/Java 문법

parse 와 강제 형변환

열심히 해 2024. 9. 23. 13:28

"parse"는 주로 문자열을 특정한 데이터 타입으로 변환하는 과정을 의미합니다.

 

파싱 메서드는 문자열(String) 형식의 데이터를 특정 기본 데이터 타입(int, double, boolean 등)으로 변환합니다.

 

 

  • 형식에 의존: 입력 문자열이 특정 형식을 충족해야 합니다. 예를 들어, "123"은 정수로 파싱할 수 있지만, "abc"는 실패합니다.
  • 예외 처리 필요: 유효하지 않은 형식의 문자열이 입력되면 NumberFormatException과 같은 예외가 발생합니다.
  • 메서드 사용: Integer.parseInt(), Double.parseDouble(), Boolean.parseBoolean() 등과 같은 메서드를 사용합니다.
  • 정확한 타입 변환: 문자열을 정확한 기본 데이터 타입으로 변환할 수 있어, 입력값 검증 및 변환에 유용합니다.

 

1.  Integer.parseInt() :

String numberStr = "123";
int number = Integer.parseInt(numberStr); // number는 123

 

 

2. Double.parseDouble() : 

String doubleStr = "12.34";
double value = Double.parseDouble(doubleStr); // value는 12.34

 

 

3. Boolean.parseBoolean() :

String boolStr = "true";
boolean flag = Boolean.parseBoolean(boolStr); // flag는 true

 

 


 

강제 형변환(Casting) : 이미 존재하는 데이터 타입의 값을 다른 데이터 타입으로 변환합니다. 주로 상위 타입을 하위 타입으로 변환할 때 사용합니다.

 

  • 데이터 손실 가능성: 변환하고자 하는 타입 간의 호환성이 있어야 합니다. 예를 들어, int를 double로 변환하는 것은 문제가 없지만, double을 int로 변환할 때는 데이터 손실이 발생할 수 있습니다.
  • 예외 발생 없음: 일반적으로 형변환이 실패할 경우 예외가 발생하지 않습니다. 하지만, 잘못된 캐스팅은 런타임 예외(ClassCastException)를 초래할 수 있습니다.
  • 명시적 또는 암시적: 자바에서는 작은 범위의 데이터 타입에서 큰 범위로의 변환은 암시적(자동)으로 이루어지며, 반대의 경우에는 명시적(강제)으로 형변환을 해야 합니다.

 

double d = 9.78;
int i = (int) d; // 강제 형변환, 소수점 이하 데이터 손실

 

 

 

 


 

 

차이 정리

 

 

  • 파싱 메서드: 문자열을 특정 기본 데이터 타입으로 변환하며, 형식에 민감하고 예외 처리가 필요합니다.
  • 강제 형변환: 이미 존재하는 값의 데이터 타입을 변경하며, 데이터 타입 간의 호환성이 중요하고 일반적으로 예외가 발생하지 않습니다.