java, jsp에어 가장 빈번하게 사용되는 문자열 관련 함수는 비교 함수 equals() 일것입니다.
equals()는 보통 이런 형태로 많이들 사용할 것입니다.
변수.equals(비교문자열)
이 형태는 변수의 값이 절대적으로 null이 나오지 않을 경우에는 상관이 없습니다.
하지만 requst.getParameter()를 사용해서 변수의 값을 초기화 한다거나 변수의 값이 수시로 바뀔 수 있는 상황에서는
null 이 들어올수 있습니다.
변수.equals(비교문자열) 이 형태에서 변수에 null 이 들어오게 되면 Exception 이 발생하나는건 잘 아실겁니다.
하지만
비교문자열.equals(변수)
형태로 문자열을 비교한다면 변수에 null 이 들어와도 Exception 이 발생하지 않습니다.(false 출력됨)
이유는 문자열을 비교할때 주체가 되는 대상이 달라지기 때문입니다.
변수.equals(비교문자열) : 변수가 주체가 되어서 문자열 비교
비교문자열.equals(변수) : 비교문자열이 주체가 되어서 문자열 비교
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
String testVal = null;
String result = "";
/* Exception 발생 */
//if( !(testVal.equals("")) ) result = "1";
/* 정상 */
if( !("".equals(testVal)) ) result = "2";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%=result %>
</body>
</html>
주석 처리를 통해서 두가지 경우를 비교해 보시면 될겁니다.
간단하지만 쉽게 잊을만한 내용입니다.
수고하세요.
[출처] [java] 올바른 equals() 사용법|작성자 후후후
'Develop > JAVA & Spring' 카테고리의 다른 글
request 내용 확인 (0) | 2016.11.08 |
---|---|
string(문자열) 비교 ==, equals 의 차이 (0) | 2016.10.26 |
JSP/Servlet에서 사용하는 Request 객체의 메소드 (0) | 2016.10.26 |
Java - Null Check 및 String 비교 (0) | 2016.10.24 |
[JAVA] 자바 문자열 함수 (0) | 2016.10.06 |