두 문자열을 비교하는 방법 Java
⚡ 스마트 요약
두 문자열을 비교하기 Java 문자열의 동일성 또는 순서 일치를 확인하는 데는 여러 가지 방법이 있습니다. 이 자료에서는 문자열 비교, 객체 비교, compareTo, StringUtils 메서드, == 연산자, 그리고 사용자 지정 비교 메서드를 포함한 7가지 접근 방식을 예제와 함께 설명합니다.

문자열을 비교하는 방법 Java
Java 두 문자열을 비교하는 데 활용할 수 있는 다양한 방법을 제공합니다. Java. 문자열 비교 Java 일련의 문자를 문자열과 일치시키는 기능입니다.
문자열을 비교하는 방법을 배우려면 Java다음 클래스에서 제공하는 메서드를 사용할 수 있습니다.
- java.lang 패키지의 문자열 클래스입니다.
- java.util 패키지의 Objects 클래스입니다.
- org.apache.commons.lang3 패키지의 StringUtils 클래스.
이들의 대부분은 Java 문자열 비교 메서드에는 대소문자를 구분하지 않는 방법이 있습니다. 이 튜토리얼에서는 두 문자열을 비교하는 데 사용할 수 있는 다양한 메서드를 배우게 됩니다.
방법 1: 문자열 equals() 메서드
The Java 끈 같음() 메서드 두 개의 문자열 객체를 비교하여 문자열 값이 같은지 확인합니다.
구문 :
public boolean equals(Object anObject)
equals() 메소드 매개변수:
anObject – 문자열 비교를 위한 인수 문자열입니다.
equals() 메소드 반환 유형
- 제공된 문자열 리터럴이 첫 번째 문자열과 동일한 경우 true를 반환합니다.
- 첫 번째 문자열이 인수 문자열과 동일하지 않으면 false를 반환합니다.
예:
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: "+stringOne.equals(stringTwo));
String stringThree = "GURU99";
System.out.println("is Guru99 equal to GURU99: "+stringOne.equals(stringThree));
}
}
예상 출력 :
is Guru99 equal to Guru99: true is Guru99 equal to GURU99: false
설명 :
- 지정된 개체의 대소문자가 다르기 때문에 마지막 출력에서 false가 반환되었습니다.
참고 : 대소문자를 구분하여 문자열을 비교하려면 `equals()` 메서드를 사용하십시오. 대소문자를 무시하고 문자열 객체를 비교하려면 `equalsIgnoreCase` 메서드를 사용하십시오.
방법 2: 객체의 equals() 메서드
The Java 객체가 같음() 이 메서드는 두 개의 문자열 객체를 비교하여 두 객체가 같은 값을 가지고 있는지 확인합니다.
구문 :
public static boolean equals(Object a, Object b)
equals() 메소드 매개변수
a – 첫 번째 문자열 객체에 대한 인수 문자열입니다.
b – 두 번째 문자열 객체에 대한 인수 문자열입니다.
equals() 메소드 반환 유형
- 문자열 리터럴이 동일하면 true를 반환합니다. 두 인수에 null 값을 전달하면 true가 반환됩니다.
- 문자열 리터럴이 동일하지 않으면 false를 반환합니다.
예:
import java.util.Objects; public class CompareTwoStrings { public static void main(String[] args) { String stringOne = "Guru99"; String stringTwo = "Guru99"; System.out.println("is Guru99 equal to Guru99: " + Objects.equals(stringOne, stringTwo)); String stringThree = null; String stringFour = null; System.out.println("is Guru99 equal to Guru99: " + Objects.equals(stringThree, stringFour)); } }
출력:
is Guru99 equal to Guru99: true is Guru99 equal to Guru99: true
설명 :
이 예시에서 볼 수 있듯이, 비교된 문자열이 같으므로 출력값은 true라는 부울 값입니다.
방법 3: 문자열 CompareTo() 메서드
The Java 문자열 비교() 방법은 두 개의 문자열을 알파벳 순서로 비교합니다. 일반적으로 사전식 순서라고 합니다.
구문 :
public int compareTo(String str)
CompareTo() 메서드 매개변수
str – 현재 문자열과 비교할 문자열입니다.
CompareTo() 메서드가 반환됩니다.
- 0 – 지정된 객체가 현재 문자열과 같은 경우 XNUMX을 반환합니다.
- < 0 – 이 문자열이 지정된 개체보다 작은 경우 XNUMX보다 작은 숫자를 반환합니다.
- > 0 – 이 문자열이 제공된 문자열을 초과하는 경우 XNUMX보다 큰 숫자를 반환합니다.
예:
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + stringOne.compareTo(stringTwo));
String stringThree = "GURU99";
// u = 117, U = 85, result = 117-85 = 32
System.out.println("is Guru99 equal to GURU99: " + stringOne.compareTo(stringThree));
}
}
예상 출력 :
is Guru99 equal to Guru99: 0 is Guru99 equal to GURU99: 32
설명 :
첫 번째 결과는 첫 번째 문자열과 두 번째 문자열이 같으므로 0을 반환합니다.
두 번째 결과는 문자가 다르기 때문에 32라는 값을 반환합니다.
참고 : 대소문자를 구분하지 않으려면 "compareToIgnoreCase" 메서드를 사용할 수 있습니다.
방법 4: StringUtils equals() 메서드
The Java StringUtils는 같음() 이 방법은 두 문자 시퀀스의 동일성을 비교합니다.
프로그램에 "org.apache.commons.lang3" 라이브러리를 추가했는지 확인하십시오. 이렇게 하면 StringUtils 메서드를 사용하여 문자열을 비교할 수 있습니다.
Maven 프로젝트의 경우 이것을 사용하십시오 안내 프로젝트에 라이브러리를 추가합니다.
하지만 빌드 도구 없이 라이브러리를 추가하려면 다음을 사용하세요. 안내.
구문 :
public static boolean equals(CharSequence cs1, CharSequence cs2)
StringUtils equals() 메서드 매개변수
- cs1 – 첫 번째 인수에 대한 문자 시퀀스입니다.
- cs2 – 두 번째 인수에 대한 문자 시퀀스입니다.
StringUtils는 equals() 메소드를 반환합니다.
- 문자열 비교 결과가 같으면 true를 반환합니다. 두 인수에 null 값을 전달하는 경우에도 동일하게 적용됩니다.
- 문자열 비교가 동일하지 않으면 false를 반환합니다.
예:
import org.apache.commons.lang3.StringUtils; public class CompareTwoStrings { public static void main(String[] args) { String stringOne = "Guru99"; String stringTwo = "Guru99"; System.out.println("is Guru99 equal to Guru99: " + StringUtils.equals(stringOne, stringTwo)); String stringThree = "GURU99"; System.out.println("is Guru99 equal to GURU99: " + StringUtils.equals(stringOne, stringThree)); } }
출력:
is Guru99 equal to Guru99: true is Guru99 equal to GURU99: false
설명 :
첫 번째 문자열과 두 번째 문자열의 내용이 동일하므로 결과는 true를 반환합니다.
대소문자를 무시하려면 "equalsIgnoreCase" 메소드를 사용할 수 있습니다.
방법 5: StringUtils equalsAny() 방법
The Java StringUtils는 Any()와 같습니다. 메서드는 인수에 문자열이 있는지 확인합니다.
구문 :
public static boolean equalsAny(CharSequence string, CharSequence... searchStrings)
StringUtils는 equalsAny() 메소드 매개변수
- 문자열 – 첫 번째 인수의 문자열 값입니다. 인수는 널값을 가질 수도 있습니다.
- searchStrings – 첫 번째 인수 문자열이 있는지 확인하기 위한 메서드의 문자열 인수 집합입니다.
StringUtils는 equalsAny() 메소드를 반환합니다.
- 일치하는 문자열이 변수 개수의 검색 문자열에 존재하면 true를 반환합니다. 두 인수가 모두 null인 경우에도 적용됩니다.
- 일치시킬 문자열이 검색 문자열의 가변 개수에 있는 어떤 문자열과도 일치하지 않는 경우 false를 반환합니다.
예:
import org.apache.commons.lang3.StringUtils; public class CompareTwoStrings { public static void main(String[] args) { String stringOne = "Guru99"; String[] stringTwo = new String[] { "Guru99", "JavaGuru99" }; System.out.println("is Guru99 available: " + StringUtils.equalsAny(stringOne, stringTwo)); String[] stringThree = new String[] { "GURU99", "JavaGuru99" }; System.out.println("is GURU99 available: " + StringUtils.equalsAny(stringOne, stringThree)); } }
출력:
is Guru99 available: true is GURU99 available: false
설명 :
첫 번째 문자열과 두 번째 문자열의 내용이 동일하므로 결과는 true를 반환합니다. 대소문자를 무시하려면 "equalsAnyIgnoreCase" 메서드를 사용할 수 있습니다.
방법 6: == 연산자 사용
문자열의 == 연산자는 객체 참조가 동일한 주소를 가지고 있는지 확인합니다.
예:
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 == to Guru99: " + (stringOne == stringTwo));
String stringThree = "GURU99";
System.out.println("is Guru99 == to GURU99: " + (stringOne == stringThree));
}
}
예상 출력 :
is Guru99 == to Guru99: true is Guru99 == to GURU99: false
설명 :
- 첫 번째 결과는 부울 값인 true를 반환합니다. 내용이 같은 문자열은 동일한 문자열 풀에 추가되므로 하나의 주소를 공유합니다.
- 두 번째 결과는 부울 값인 false를 반환합니다. 객체의 내용이 서로 다르기 때문에 문자열 풀도 다릅니다. 즉, 문자열이 서로 다른 객체 참조를 가지고 있으므로 출력은 false입니다.
방법 7: 두 문자열을 비교하는 사용자 정의 방법 만들기 Java
사전식 순서를 사용하여 두 문자열을 비교하는 메서드를 만듭니다.
구문 :
public static int compareTwoStrings(String str1, String str2)
사용자 정의 방법 매개변수
- str1 – 비교할 문자열입니다.
- str2 – 비교할 문자열입니다.
사용자 정의 메소드 반환
- 0 – 첫 번째 문자열이 두 번째 문자열과 같으면 XNUMX을 반환합니다.
- < 0 – 첫 번째 문자열이 두 번째 문자열보다 작은 경우 XNUMX보다 작은 숫자를 반환합니다.
- > 0 – 첫 번째 문자열이 두 번째 문자열보다 큰 경우 XNUMX보다 큰 숫자를 반환합니다.
예:
public class CompareTwoStrings {
public static int compareTwoStrings(String stringOne, String stringTwo) {
int lengthOfStringOne = stringOne.length();
int lengthOfStringTwo = stringTwo.length();
int minStringLength = Math.min(lengthOfStringOne, lengthOfStringTwo);
for (int i = 0; i < minStringLength; i++) {
char stringOneCharValue = stringOne.charAt(i);
char stringTwoCharValue = stringTwo.charAt(i);
if (stringOneCharValue != stringTwoCharValue) {
return stringOneCharValue - stringTwoCharValue;
}
}
if (lengthOfStringOne != lengthOfStringTwo) {
return lengthOfStringOne - lengthOfStringTwo;
} else {
return 0;
}
}
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + compareTwoStrings(stringOne, stringTwo));
}
}
예상 출력 :
is Guru99 equal to Guru99: 0
설명 :
결과는 XNUMX 값을 반환했습니다. 이는 사용자 정의 함수가 예상대로 작동하고 있음을 의미합니다.
