IT•개발 끄적/Java
[java] 문자열 형변환(String Casting)[(String)/String.valueOf()/.toString()]
소다맛사탕
2021. 4. 19. 22:44
반응형
안녕하세요. 소다맛사탕 입니다.
오늘은 문자열로 형변환 종류와 사용법에 대해 알아 보겠습니다.
기본적으로 문자열(String) 형변환에는 3가지 방법이 있습니다.
1. (String)
- 대상 변수가 null 이면 NullPointerException.
- Object 값이 String이 아니면 ClassCastException.
2. toString()
- 대상 변수가 null 이면 NullPointerException.
- Object 값이 String 변수가 아니더라도 출력.
3. String.value()
- casting 변수가 null 이면 문자열 "null"을 만든다.
// 문자형 변수 선언
String strVal = "test";
System.out.println("String.valueOf : " + String.valueOf(strVal));
System.out.println("(String) : " + (String) strVal );
System.out.println(".toString() : " + strVal.toString());
System.out.println("===================================");
// 문자형 공백 변수 선언
Object objVal = "";
System.out.println("String.valueOf : " + String.valueOf(objVal));
System.out.println("(String) : " + (String) objVal );
System.out.println(".toString() : " + objVal.toString());
System.out.println("===================================");
// Object null 변수 선언
Object strVal3 = null;
System.out.println("String.valueOf : " + String.valueOf(strVal3));
System.out.println("(String) : " + (String) strVal3 );
System.out.println(".toString() : " + strVal3.toString());
>> String.valueOf : test
>> (String) : test
>> .toString() : test
>> ===================================
>> String.valueOf :
>> (String) :
>> .toString() :
>> ===================================
>> String.valueOf : null
>> (String) : null
>> Exception in thread "main" java.lang.NullPointerException
at simsim.JavaCastingString.main(JavaCastingString.java:26)
대상 변수가 null 일때 NullPointerException은 toString() 방식일때 발생 확인.
// 문자형 상수 변수 선언
Object objIntVal = 1;
System.out.println("String.valueOf : " + String.valueOf(objIntVal));
System.out.println(".toString() : " + objIntVal.toString());
System.out.println("(String) : " + (String) objIntVal );
>> String.valueOf : 1
>> Exception in thread "main" .toString() : 1
>> java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at simsim.JavaCastingString.main(JavaCastingString.java:32)
대상 변수가 String이 아닌 상수일때 ClassCastException 발생 확인.
이로써 결론은,
Casting 방식에 따라 화면에 데이터를 뿌리거나 비교할때,
Null 존재 여부에 따른 exception이 왜 발생하고, 어떤 방식으로 형변환을 해야 하는지 다시 한번 정리되었다.