============================ Java Programming Tip ② ==============================
java에서 String에 값이 들어있는지를 체크하기 위해
다음과 같이 체크하는 경우가 있습니다.
if (param != null && param.equals("")) {
// 값이 있는 경우 처리
} else {
// 값이 없는 경우 처리
}
이 경우 다음과 같이 사용하는 것이 좋습니다.
if (param != null && param.length() != 0) {
// 값이 있는 경우 처리
} else {
// 값이 없는 경우 처리
}
// 값이 있는 경우 처리
} else {
// 값이 없는 경우 처리
}
또는
if (param == null || param.length() == 0) {
// 값이 없는 경우 처리
} else {
// 값이 있는 경우 처리
}
// 값이 없는 경우 처리
} else {
// 값이 있는 경우 처리
}
equals("")를 사용하면 불필요하게 새로운 스트링인 ""를 생성하게 되고
함수 내부에서 몇 번의 비교후에 다른 스트링으로 형변환 및 치환도 합니다.
함수 내부에서 몇 번의 비교후에 다른 스트링으로 형변환 및 치환도 합니다.
반면 length() 함수는 내장객체인 int 변수 하나만 리턴하면 되므로 빠릅니다.
아래 String.equals() 함수와 String.length() 함수 소스를 확인해보세요.
-----------------------------------------
public int length()
{
return count;
}
-----------------------------------------
public boolean equals(O bject obj)
{
if(this == obj)
return true;
if(obj instanceof String)
{
String s = (String)obj;
int i = count;
if(i == s.count)
{
char ac[] = value;
char ac1[] = s.value;
int j = offset;
int k = s.offset;
while(i-- != 0)
if(ac[j++] != ac1[k++])
return false;
return true;
}
}
return false;
}
-----------------------------------------
public int length()
{
return count;
}
-----------------------------------------
public boolean equals(O bject obj)
{
if(this == obj)
return true;
if(obj instanceof String)
{
String s = (String)obj;
int i = count;
if(i == s.count)
{
char ac[] = value;
char ac1[] = s.value;
int j = offset;
int k = s.offset;
while(i-- != 0)
if(ac[j++] != ac1[k++])
return false;
return true;
}
}
return false;
}
-----------------------------------------
반응형
':::: 개발 :::: > ::: JAVA :::' 카테고리의 다른 글
log4j ibatis 설정 법 정리 (0) | 2012.02.14 |
---|---|
oracle sequence 시퀀스 (0) | 2011.05.16 |
JAVA 인터페이스 개념 정리 (0) | 2011.03.11 |
허허 이게 생각이 안났써 변수 비교후 바꾸기 (0) | 2010.10.03 |
[본문스크랩] [강좌] 자바 설치하기. (0) | 2009.12.28 |
[본문스크랩] [JSP] [팁] EUC-KR, KSC5601, euc-kr , etc.. (0) | 2009.12.28 |
3가지 수 입력중 제일 큰수 찾기 (0) | 2009.12.28 |
아바티스 + 스트러츠 관련 링크 (0) | 2009.12.28 |