Strings의 동등성을 비교하려면 String 객체의 equals
를 사용해야 합니다. 또는 equalsIgnoreCase
행동 양식. 또한 ==
를 사용하지 말아야 하는 이유도 알게 됩니다. 문자열을 비교하는 연산자입니다.
equals() 메소드로 문자열 비교
자바에서 두 문자열을 비교해야 하고 문자열의 대소문자도 신경써야 한다면 equals()
를 사용할 수 있습니다. 방법.
예를 들어 다음 스니펫은 대소문자를 포함한 모든 문자에서 String의 두 인스턴스가 동일한지 여부를 결정합니다.
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = "Test123";
String secondString = "Test" + 123;
String thirdString = "TEST123";
if (firstString.equals(secondString)) {
System.out.println("first and second strings are equal");
}
if (firstString.equals(thirdString)) {
System.out.println("first and third string are equal");
}
}
}
출력:
first and second strings are equal
참고:두 번째 print 문은 firstString과 thirdString의 대소문자가 일치하지 않기 때문에 실행되지 않습니다. equalsIgnoreCase() 메서드를 사용하여 문자열 비교
자바에서 두 문자열을 비교해야 하지만 문자열의 대소문자에 신경 쓰지 않는다면 equalsIgnoreCase()
를 사용할 수 있습니다. 방법.
예를 들어 위의 코드 스니펫에서 .equals()
.equalsIgnoreCase()
사용 메소드를 사용하면 두 인쇄 문이 모두 실행됩니다.
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = "Test123";
String secondString = "Test" + 123;
String thirdString = "TEST123";
if (firstString.equalsIgnoreCase(secondString)) {
System.out.println("first and second strings are equal");
}
if (firstString.equalsIgnoreCase(thirdString)) {
System.out.println("first and third string are equal");
}
}
}
출력:
first and second strings are equal
first and third string are equal
관련:
- Java에서 toString()을 재정의하는 이유
- 자바에서 문자열을 뒤집는 방법
- 문자열에서 숫자를 추출하는 방법
- Java에서 String을 Int로 변환하는 방법
문자열을 비교하기 위해 ==연산자를 사용하지 마십시오
참고:Java에서 두 문자열을 비교할 때 == 또는 != 운영자.이 연산자는 실제로 참조를 테스트하며 여러 String 개체가 동일한 String을 나타낼 수 있으므로 오답이 나올 수 있습니다.
대신 String.equals(Object)
이 메서드는 값을 기준으로 String 개체를 비교합니다.
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = "Test123";
String secondString = "Test123";
String thirdString = new String("Test123");
if (firstString == secondString) {
System.out.println("first and second strings are equal");
}
if (firstString == thirdString) {
System.out.println("first and third strings are equal");
}
}
}
출력:
first and second strings are equal
참고:두 번째 print 문은 실행되지 않습니다. 상수 값이 있는 문자열 비교
String을 상수 값과 비교할 때 상수 값을 equals의 왼쪽에 놓아 NullPointerException
이 발생하지 않도록 할 수 있습니다. 다른 문자열이 null인 경우.
예:
"baz".equals(foo)
foo.equals("baz")
동안 NullPointerException
이 발생합니다. foo가 null이면 "baz".equals(foo)
false
로 평가됩니다. .
더 읽기 쉬운 대안은 Objects.equals()
를 사용하는 것입니다. , 두 매개변수 모두에 대해 null 검사를 수행합니다.
예를 들어 Objects.equals(foo, "baz")
.
Switch 문에서 문자열 비교
Java 1.7부터 switch 문에서 String 변수를 리터럴과 비교할 수 있습니다. 문자열이 null이 아닌지 확인하십시오. 그렇지 않으면 항상 NullPointerException
이 발생합니다. . 값은 String.equals
를 사용하여 비교됩니다. , 즉 대소문자를 구분합니다.
public class CompareTwoStrings {
public static void main(String[] args) {
String stringToSwitch = "A";
switch (stringToSwitch) {
case "a":
System.out.println("a");
break;
case "A":
System.out.println("A"); //the code goes here
break;
case "B":
System.out.println("B");
break;
default:
break;
}
}
}
결론
이 게시물에서 우리는 코드 예제와 자바의 문자열을 비교하는 방법을 설명했습니다. 문자열의 대소문자가 중요할 때 .equals()
를 사용해야 합니다. 대소문자가 중요하지 않은 경우 .equalsIgnoreCase()
를 사용해야 합니다. .
또한 ==
를 사용해서는 안 됩니다. ==
와 같이 문자열을 비교하는 연산자 연산자는 값이 아닌 참조를 확인합니다.