-
[JAVA] toString, (String), String.valueOf() 문자열 형변환 살펴보기프로그래밍 언어/JAVA 2022. 11. 17. 10:41
형변환,, 매번 내게 질문을 준다. 한 번 제대로 정리해두면 헷갈리지 않을 것 같아 이번 기회로 정리해보려고 한다. 컨트롤러에서 파라미터로 넘어온 값을 Map<String,Object> 형태로 저장한 paramMap과 sesstion에서 값을 가져오려고 한다. 가져온 값들 2개는 둘다 Object 형태이다. 근데 loginId는 (String)으로 형변환을 하고 action은 String.valuOf 로 형변환을 했다. 이 둘의 차이점은 무엇일까??
//세션에서 가져온 값은 Object형태로 저장된다. String loginId =(String)session.getAttribute("loginId"); //paramMap의 value 값 형태는 Object이다. String action = String.valueOf(paramMap.get("action"));
📑 String casting -> (String)으로 형변환
(String)으로 형변환 하는 것을 말하며 대상 Object가 실제 문자열이여야 가능하다.만약 문자가 아닌 숫자면 예외 발생!
null값을 변환하면 "null"이 된다.
classCastException
Object noString = new Integer(12);
String str = (String)noString;📑 toString()
public String toString()
: 모든 래퍼 클래스는 toString() 메서드를 가진다. 래퍼 객체를 String 타입으로 형변환 해주는 것. 즉) Object(Wrapper class[Integer, Character, Double .,,,])의 데이터를 String 문자열로 바꿔준다. toString()은 메서드 이므로 기본 자료형(PrimitiveType)은 사용할 수 없다. 만약 null값을 형변환 하면 NullPointerException이 발생한다.
래퍼 타입 객체란? 기본 타입에 해당하는 데이터를 객체로 포장해주는 클래스이다.
📑 String.valueOf()
: 파라미터로 들어오는 Object(int, boolean, double,,,)등을 어떤 값이라도 String 문자열로 바꿔준다. 파라미터가 null이라면 String 문자열로 "null"을 반환하며, null이 아니라면 toString()으로 함수 값을 반환한다.
String str = String.valueOf(new Integer(12));//"12"
String str2 = String.valueOf(null);//"null"반응형'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] Scanner 와 BufferedReader (0) 2023.01.26 [JDK] 설치 후 환경변수 설정 (path, JAVA_HOME) (0) 2022.12.07 [ch14 Stream] 스트림 생성과 연산, Optional<T> (0) 2022.11.01 [JAVA] 열거형(enum)이란? (0) 2022.10.24 [JAVA] TreeSet과 이진 탐색 트리 (1) 2022.10.15