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() 메서드는 정수를 반환합니다. 세 가지 가능한 값을 가질 수 있습니다.
- 음수 값: 첫 번째 개체가 두 번째 개체보다 작은 것으로 간주되는 경우.
- 영: 객체가 동일하다고 간주되는 경우.
- 양수 값: 첫 번째 개체가 두 번째 개체보다 큰 것으로 간주되는 경우.