나 같은 사람이라면 처음 Java를 사용하기 시작할 때 "=="연산자를 사용하여 두 개의 String 인스턴스가 같은지 테스트하고 싶었지만 더 좋든 나쁘 든 Java에서 올바른 방법이 아닙니다.
이 튜토리얼에서는 Java 문자열을 올바르게 비교하는 여러 가지 방법을 보여 드리겠습니다. 이 Java String 비교 자습서의 끝에서 Java 문자열을 비교할 때 "=="연산자가 작동하지 않는 이유에 대해서도 설명합니다.
옵션 1 : equals 메소드를 사용한 Java 문자열 비교
대부분의 경우 (시간의 95 %) 다음과 같이 Java String 클래스의 equals 메소드와 문자열을 비교합니다.
if (string1.equals(string2))
이 String equals 메소드는 두 개의 Java 문자열을 살펴보고 정확히 동일한 문자열을 포함하는 경우 동일한 것으로 간주됩니다.
equals 메소드를 사용하여 빠른 문자열 비교 예제를 살펴보면 다음 테스트를 실행하면 문자가 정확히 동일하지 않기 때문에 두 문자열이 동일하게 간주되지 않습니다 (문자의 경우가 다름).
String string1 = "foo";
String string2 = "FOO";
if (string1.equals(string2))
{
// this line will not print because the
// java string equals method returns false:
System.out.println("The two strings are the same.")
}
그러나 두 문자열에 정확히 동일한 문자열이 포함되어 있으면 equals 메서드는 다음 예제와 같이 true를 반환합니다.
String string1 = "foo";
String string2 = "foo";
// test for equality with the java string equals method
if (string1.equals(string2))
{
// this line WILL print
System.out.println("The two strings are the same.")
}
옵션 2 : equalsIgnoreCase 메소드를 사용한 문자열 비교
일부 문자열 비교 테스트에서는 문자열이 대문자인지 소문자인지 무시하고 싶을 것입니다. 대소 문자를 구분하지 않는 방식으로 문자열이 동일한 지 테스트하려면 다음과 같이 String 클래스의 equalsIgnoreCase 메소드를 사용하십시오.
String string1 = "foo";
String string2 = "FOO";
// java string compare while ignoring case
if (string1.equalsIgnoreCase(string2))
{
// this line WILL print
System.out.println("Ignoring case, the two strings are the same.")
}
옵션 3 : compareTo 메소드를 사용한 Java 문자열 비교
Java 문자열을 비교하는 덜 일반적인 세 번째 방법도 있으며 String 클래스 compareTo 메소드를 사용합니다. 두 문자열이 정확히 같은 경우 compareTo 메서드는 0 값을 반환합니다. 다음은이 문자열 비교 방식의 간단한 예입니다.
String string1 = "foo bar";
String string2 = "foo bar";
// java string compare example
if (string1.compareTo(string2) == 0)
{
// this line WILL print
System.out.println("The two strings are the same.")
}
Java에서 이러한 평등 개념에 대해 쓰고 있지만 Java 언어에는 기본 Java Object 클래스에 equals 메소드가 포함되어 있습니다. 자신의 객체를 만들 때 객체의 두 인스턴스가 "동일한"지 여부를 확인할 수있는 방법을 제공 할 때마다 클래스에서이 동일한 메소드를 재정의 (및 구현)해야합니다 (Java 언어와 동일한 방식으로). String equals 메소드에서의이 동등 / 비교 동작).
이 ==, .equals (), compareTo () 및 compare ()를 살펴볼 수 있습니다.