PostIT

[Java]자바에서 스트링 비교하기(equals와 ==의 차이점) 본문

Java

[Java]자바에서 스트링 비교하기(equals와 ==의 차이점)

shun10114 2016. 8. 16. 21:02

자바에서 스트링 비교하기(equals와 ==의 차이점)


웹 프로젝트를 진행하면서 비교를 통해 기능을 구현해야 하는 부분이 많이 발생한다.

그러면서, 자바에 대한 정확한 지식없이 오류를 많이 발생시키게 된다.

이번 자바 스트링 비교는 웹 프로젝트에서 많이 사용됨은 물론이며,

간단한 스트링 비교에 대해서 알아보기 위해 글을 작성해본다.



1. 형태의 차이

equals() 는 객채끼리 내용(값)을 비교할 수 있는 '메소드'입니다.

==는 객체의 참조(주소)값을 비교하는 '연산자'입니다.



2. 비교방식의 차이




간단하게 다른 예로 설명해보자면,


서울에 사는 홍길동

인천에 사는 홍길동


equals 메소드는, 홍길동 자체의 값을 비교하는 것이고

==는 서울과 인천, 즉 주소값을 비교한다.

이 예를 들어, equals 홍길동은 같지만, ==홍길동은 주소가 다르기 때문에 같지 않다.




public class Test {

public static void main(String[] args){

String a="abcd";

String b="abcd";

String c=new String("abcd");

System.out.println("--------------==--------------");

if(a==b){

System.out.println("a와 b는 주소(참조)값이 같다.");

} else {

System.out.println("a와 b는 주소(참조)값이 다르다.");

}

if(a==c){

System.out.println("a와 c는 주소(참조)값이 같다.");

} else {

System.out.println("a와 c는 주소(참조)값이 다르다.");

}

System.out.println("--------------equals--------------");

if(a.equals(b)){

System.out.println("a와 b는 문자열 값이 같다.");

} else {

System.out.println("a와 b는 문자열 값이 다르다.");

}

if(a.equals(c)){

System.out.println("a와 c는 문자열 값이 같다.");

} else {

System.out.println("a와 c는 문자열 값이 다르다.");

}

}


}


--------------==--------------

a와 b는 주소(참조)값이 같다.

a와 c는 주소(참조)값이 다르다.


--------------equals--------------

a와 b는 문자열 값이 같다.

a와 c는 문자열 값이 같다.


equals의 반대는 !(a.equals(b)); 

==의 반대는 !=



이렇게 객체 비교를 통해서 프로젝트 중에 문제 없이 진행하길 바란다.




Comments