logo

예제가 포함된 Java 문자열 CompareTo() 메서드

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() 메서드의 변형

있다 세 가지 변형 ~의 비교 대상() 다음과 같은 방법입니다.

  1. int CompareTo(Object obj) 사용
  2. int CompareTo(String AnotherString) 사용
  3. 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>

또한 읽어보세요:

  1. Java에서 두 문자열 비교
  2. Java에서 두 문자열을 사전순으로 비교합니다.
  3. Java 정수 CompareTo() 메서드

결론

Java의 CompareTo() 함수는 두 문자열이나 개체를 사전순으로 비교하는 데 사용됩니다. 양수, 0 또는 음수 정수를 반환합니다. 이 튜토리얼에서는 이 방법을 다루었고 그 작동 방식과 예외 사항에 대해 논의했습니다.

자세히 알아보기 자바 문자열 메소드

Java 문자열 CompareTo() 메서드 - FAQ

Java에서 문자열을 비교하는 방법은 무엇입니까?

CompareTo() 메서드를 사용하여 Java에서 문자열을 비교할 수 있습니다. 두 개의 매개변수를 허용하고 사전순으로 비교합니다.

Java에서 CompareTo() 메서드와 Equals() 메서드의 차이점은 무엇입니까?

같음() 메서드 CompareTo() 메서드
두 객체가 정확히 동일한지 확인하는 데 사용됩니다. 두 개체를 비교하고 상대적 순서를 결정하는 데 사용됩니다.

부울을 반환합니다.

  • 객체가 동일한 것으로 간주되면 true입니다.
  • 그렇지 않으면 거짓입니다.

정수를 반환합니다:

  • 첫 번째 개체가 두 번째 개체보다 작은 것으로 간주되는 경우 음수 값입니다.
  • 객체가 동일한 것으로 간주되면 0입니다.
  • 첫 번째 개체가 두 번째 개체보다 큰 것으로 간주되는 경우 양수 값입니다.

CompareTo()는 Java에서 무엇을 반환합니까?

Java의 CompareTo() 메서드는 정수를 반환합니다. 세 가지 가능한 값을 가질 수 있습니다.

  • 음수 값: 첫 번째 개체가 두 번째 개체보다 작은 것으로 간주되는 경우.
  • 영: 객체가 동일하다고 간주되는 경우.
  • 양수 값: 첫 번째 개체가 두 번째 개체보다 큰 것으로 간주되는 경우.