Java의 문자열은 문자에 대한 연속적인 메모리 할당을 의미하는 배열에 의해서만 내부적으로 지원되는 객체입니다. Java에서 문자열은 불변입니다. 즉, String 객체를 생성하고 여기에 일부 값을 할당하면 내용을 변경할 수 없습니다. 그러나 원하는 수정 사항을 적용하여 또 다른 String 객체를 생성할 수 있습니다.
Java의 String 클래스는 문자열에 대한 다양한 작업을 실행하는 많은 메소드로 구성되며 여기서는 Java String 클래스에 중점을 둘 것입니다. 비교 대상() 이 글의 방법.
자바 String.compareTo() 메서드
자바 비교 대상() 메소드는 주어진 문자열을 현재 문자열과 비교합니다. 사전식으로 . 양수, 음수 또는 0을 반환합니다. 문자열을 비교합니다. 유니코드 값 문자열의 각 문자에 대해
예:
자바
public> class> StringCompareTo {> > public> static> void> main(String[] args) {> > String str1 => 'Geeks'> ;> > String str2 => 'Geeks'> ;> > int> comparison = str1.compareTo(str2);> > if> (comparison <> 0> ) {> > System.out.println(str1 +> ' comes before '> + str2 +> ' lexicographically.'> );> > }> else> if> (comparison>> 0> ) {> > System.out.println(str1 +> ' comes after '> + str2 +> ' lexicographically.'> );> > }> else> {> > System.out.println(str1 +> ' and '> + str2 +> ' are lexicographically equal.'> );> > }> > }> }> |
>
>
산출:
Geeks and Geeks are lexicographically equal.>
통사론
int comparison = str1.compareTo(str2);>
매개변수:
- str1: 비교를 위한 문자열 1
- str2: 비교를 위한 문자열 2
보고:
- 만약에 문자열1> 문자열2 , 그것은 반환 긍정적인 숫자
- 만약에 문자열1
- 만약에 문자열1 == 문자열2 , 그것은 반환 0
예외: 다음 두 가지 예외가 발생합니다.
- NullPointerException- 지정된 개체가 Null인 경우
- ClassCastException- 현재 개체를 지정된 개체와 비교할 수 없는 경우
CompareTo() 메서드의 변형
있다 세 가지 변형 ~의 비교 대상() 다음과 같은 방법입니다.
- int CompareTo(Object obj) 사용
- int CompareTo(String AnotherString) 사용
- int CompareToIgnoreCase(String str) 사용
1. int CompareTo(객체 obj)
이 메서드는 이 문자열을 다른 개체와 비교합니다.
통사론:
jvm
int compareTo(Object obj)>
매개변수:
obj: the Object to be compared.>
반환 값: 인수가 이 문자열과 사전순으로 동일한 문자열인 경우 값은 0입니다. 인수가 이 문자열보다 사전순으로 큰 문자열인 경우 0보다 작은 값입니다. 인수가 이 문자열보다 사전순으로 작은 문자열인 경우 0보다 큰 값입니다.
예:
다음은 int CompareTo(Object obj)의 구현입니다.
자바
// Java code to demonstrate the> // working of compareTo()> public> class> Cmp1 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeksforgeeks'> ;> > String str2 => new> String(> 'geeksforgeeks'> );> > String str3 => new> String(> 'astha'> );> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks object> > System.out.print(> > 'Difference of geeksforgeeks(obj) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha object> > System.out.print(> > 'Difference of astha(obj) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str3));> > }> }> |
>
>산출
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int CompareTo(String anotherString)
이 방법은 두 문자열을 사전순으로 비교합니다.
cpld 대 fpga
통사론:
int compareTo(String anotherString)>
매개변수:
anotherString: the String to be compared.>
반환 값: 인수가 이 문자열과 사전순으로 동일한 문자열인 경우 값은 0입니다. 인수가 이 문자열보다 사전순으로 큰 문자열인 경우 0보다 작은 값입니다. 인수가 이 문자열보다 사전순으로 작은 문자열인 경우 0보다 큰 값입니다.
예:
다음은 int CompareTo(String anotherString)의 구현입니다.
자바
// Java code to demonstrate the> // working of compareTo()> public> class> Cmp2 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeksforgeeks'> ;> > String str2 => 'geeksforgeeks'> ;> > String str3 => 'astha'> ;> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks string> > System.out.print(> > 'Difference of geeksforgeeks(str) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha string> > System.out.print(> > 'Difference of astha(str) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str3));> > }> }> |
>
>산출
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int CompareToIgnoreCase(String str)
이 방법은 대소문자 차이를 무시하고 사전순으로 두 문자열을 비교합니다.
통사론:
int compareToIgnoreCase(String str)>
매개변수:
str: the String to be compared.>
반환 값: 이 메소드는 대소문자 고려 사항을 무시하고 지정된 문자열이 이 문자열보다 크거나 같거나 작으므로 음의 정수, 0 또는 양의 정수를 반환합니다.
예:
다음은 int CompareToIgnoreCase(String str)의 구현입니다.
문자열 분리 C++
자바
// Java code to demonstrate the> // working of compareToIgnoreCase()> public> class> Cmp3 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeks'> ;> > String str2 => 'gEEkS'> ;> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks string> > // case sensitive> > System.out.print(> > 'Difference of geeks and gEEkS (case sensitive) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha string> > // case insensitive> > // using compareToIgnoreCase()> > System.out.print(> > 'Difference of geeks and gEEkS (case insensitive) : '> );> > System.out.println(str1.compareToIgnoreCase(str2));> > }> }> |
>
>산출
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>
Java 문자열 CompareTo() 메서드의 예외
Java의 CompareTo() 메서드는 두 가지 가능한 예외를 발생시킬 수 있습니다.
- NullPointer예외
- 클래스캐스트예외
CompareTo() NullPointerException
Java에서 비교 대상 객체 중 하나가 다음과 같은 경우 CompareTo() 메서드는 NullPointerException을 발생시킵니다. 없는 . 이렇게 하면 Null 값을 명시적으로 처리하고 예기치 않은 동작을 방지할 수 있습니다.
예:
자바
public> class> cmp5> {> // main method> public> static> void> main(String[] args)> {> > String str => null> ;> > // null is invoking the compareTo method. Hence, the NullPointerException> // will be raised> int> no = str.compareTo(> 'Geeks'> );> > System.out.println(no);> }> }> |
>
>
산출:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
CompareTo() ClassCastException
이는 런타임 예외이며, CompareTo() 메서드에서 호환되지 않는 유형의 두 객체를 비교할 때 발생합니다.
자바의 이진 검색
예:
자바
public> class> ClassCastExceptionExample {> > public> static> void> main(String[] args) {> > Object obj1 => 'Hello'> ;> > Object obj2 => 10> ;> // Integer object> > // Explicitly cast obj2 to String to force the exception> > int> comparison = ((String) obj2).compareTo(obj1);> > System.out.println(> 'Comparison: '> + comparison);> > }> }> |
>
>
산출:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
또한 읽어보세요:
- Java에서 두 문자열 비교
- Java에서 두 문자열을 사전순으로 비교합니다.
- Java 정수 CompareTo() 메서드
결론
Java의 CompareTo() 함수는 두 문자열이나 개체를 사전순으로 비교하는 데 사용됩니다. 양수, 0 또는 음수 정수를 반환합니다. 이 튜토리얼에서는 이 방법을 다루었고 그 작동 방식과 예외 사항에 대해 논의했습니다.
자세히 알아보기 자바 문자열 메소드
Java 문자열 CompareTo() 메서드 - FAQ
Java에서 문자열을 비교하는 방법은 무엇입니까?
CompareTo() 메서드를 사용하여 Java에서 문자열을 비교할 수 있습니다. 두 개의 매개변수를 허용하고 사전순으로 비교합니다.
Java에서 CompareTo() 메서드와 Equals() 메서드의 차이점은 무엇입니까?
같음() 메서드 CompareTo() 메서드 두 객체가 정확히 동일한지 확인하는 데 사용됩니다. 두 개체를 비교하고 상대적 순서를 결정하는 데 사용됩니다. 부울을 반환합니다.
- 객체가 동일한 것으로 간주되면 true입니다.
- 그렇지 않으면 거짓입니다.
정수를 반환합니다:
- 첫 번째 개체가 두 번째 개체보다 작은 것으로 간주되는 경우 음수 값입니다.
- 객체가 동일한 것으로 간주되면 0입니다.
- 첫 번째 개체가 두 번째 개체보다 큰 것으로 간주되는 경우 양수 값입니다.
CompareTo()는 Java에서 무엇을 반환합니까?
Java의 CompareTo() 메서드는 정수를 반환합니다. 세 가지 가능한 값을 가질 수 있습니다.
- 음수 값: 첫 번째 개체가 두 번째 개체보다 작은 것으로 간주되는 경우.
- 영: 객체가 동일하다고 간주되는 경우.
- 양수 값: 첫 번째 개체가 두 번째 개체보다 큰 것으로 간주되는 경우.