IT's 우

이것이 자바다[Java]_String 타입의 문자열 비교 본문

Java/이것이 자바다

이것이 자바다[Java]_String 타입의 문자열 비교

디우 2021. 1. 16. 20:06
728x90

String 타입의 문자열을 비교할 때에는 대소(<. <=, >, >=) 연산자를 사용할 수 없고,

동등(==, !=) 비교 연산자는 사용할 수 있으나 문자열이 같은지, 다른지를 비교하는 용도로는 사용되지 않는다.

기본타입(byte, char, short, int, long, float, double, boolean)인 변수의 값을 비교할 때에는 == 연산자를 사용하지만

참조 타입인 String 변수를 비교할 때 == 연산자를 다른 용도로 사용한다.

 

String strVar1 = "자바";

String strVar2 = "자바";

String strVar3 =new String("자바");

 

자바는 문자열 리터럴이 동일하다면 동일한 String 객체를 참조하도록되어 있다. 그래서 strVar1과 strVar2는 동일한 String 객체의 번지값을 가지고 있다. 그러나 변수 strVar3은 객체 생성 연산자인 new로 생성한 새로운 String 객체의 번지값을 가지고 있다.

변수 strVar1과 strVar2의 == 연산은 true를 산출하고 strVar2와 strVar3의 == 연산은 false를 산출한다. == 연산자는 변수에 저장된 값만 비교하기 때문에 이러한 결과가 나온다.

 

*String 객체의 문자열만 비교, equals()

동일한 String 객체이건 다른 String 객체이건 상관없이 String 객체의 문자열만 비교하고 싶다면 == 연산자 대신에 equals() 메소드를 사용해야 한다. equals() 메소드는 원본 문자열과 매개값으로 주어진 비교 문자열이 동일한지 비교한 후 true 또는 false를 리턴한다.

 

 

출처: 이것이 자바다,신용권 지음

728x90
반응형