본문 바로가기

Java 공부/신용권의 이것이 자바다

equals(), String 타입에서 문자열비교 방법

반응형

비교연산자 ==와 !=는 숫자에서는 변수들을 비교하지만, String 타입에서는 번지를 비교한다.

자바에서는 문자를 저장할 때, 스텍영역에 그 문자가 들어있는 객체의 번지를 저장하고 힙영역에 객체를 저장한다.

이때, 변수가 다르게 선언되어도 같은 번지에 들어있는 동일한 객체를 이용하는 것이다.

아래 코드를 보자!

 strVar1과 strVar2는 같은 객체를 참조하게 되는 것이다.

동일한 객체가 아니라 새로운 객체를 만들길 원한다면, new 연산자를 이용한다.

new가 선언되면, 자바는 새로운 String 객체를 만든다.

그래서 strVar3와 strVar4는 다른 객체를 일컫게 되는 것이다.

번지가 아니라 문자열이 같은지, 다른지를 알기 위해서는 비교연산자를 이용하지 말고 equals()를 이용해야 한다.

그 방법은 아래와 같다.

strVar3 와  strVar4 의 문자열이 같은지를 알아보기 위해서는 위 코드처럼 if문을 이용해서 equals메소드를 호출한다.

그럼, 그 문자열이 같은지 다른지를 확인할 수 있다.

이 두개는 서로 같기 때문에, 콘솔창에 '문자열이 같다'는 결과값이 나오는 걸 확인하게 될 것이다.

 

반응형