logo

Java에서 두 문자열 비교

문자열은 일련의 문자입니다. Java에서 String의 객체는 불변입니다. 즉, 상수이고 일단 생성되면 변경할 수 없음을 의미합니다.

저장

Java에서 문자열을 비교하는 방법

다음은 두 가지를 비교하는 5가지 방법입니다. 문자열 자바에서:

  1. 사용자 정의 함수 사용
  2. String.equals() 사용
  3. String.equalsIgnoreCase() 사용
  4. Objects.equals() 사용
  5. String.compareTo() 사용

1. 사용자 정의 함수 사용:

다음 조건과 값을 비교하는 함수를 정의합니다.



  1. (문자열1> 문자열2)인 경우 다음을 반환합니다. 양수 값 .
  2. 두 문자열이 모두 사전식으로 동일한 경우, 즉 (string1 == string2) 반환됩니다. 0 .
  3. if(문자열1 음수 값 .

2. String.equals() 사용:

Java에서 string equals() 메소드는 문자열의 데이터/내용을 기반으로 주어진 두 문자열을 비교합니다. 두 문자열의 모든 내용이 동일하면 true를 반환합니다. 일치하지 않는 문자가 있으면 false를 반환합니다.

통사론:

str1.equals(str2);>

여기서 str1과 str2는 모두 비교할 문자열입니다.

예:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   geeks   Input 2:   Geeks   Output:   false>

프로그램:

자바
// Java program to Compare two strings // lexicographically public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Practice');  String string3 = new String('Geeks');  String string4 = new String('Geeks');  String string5 = new String('geeks');  // Comparing for String 1 != String 2  System.out.println('Comparing ' + string1 + ' and '  + string2 + ' : '  + string1.equals(string2));  // Comparing for String 3 = String 4  System.out.println('Comparing ' + string3 + ' and '  + string4 + ' : '  + string3.equals(string4));  // Comparing for String 4 != String 5  System.out.println('Comparing ' + string4 + ' and '  + string5 + ' : '  + string4.equals(string5));  // Comparing for String 1 != String 4  System.out.println('Comparing ' + string1 + ' and '  + string4 + ' : '  + string1.equals(string4));  } }>

산출
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>

3. String.equalsIgnoreCase() 사용:

그만큼 String.equalsIgnoreCase() 메서드는 문자열의 대소문자(낮음 또는 위쪽)에 관계없이 두 문자열을 비교합니다. 이 메서드는 인수가 null이 아니고 두 문자열의 내용이 대소문자를 무시하고 동일하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 통사론:

str2.equalsIgnoreCase(str1);>

여기서 str1과 str2는 모두 비교할 문자열입니다.

예:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   geeks   Input 2:   Geeks   Output:   true>

프로그램:

자바
// Java program to Compare two strings // lexicographically public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Practice');  String string3 = new String('Geeks');  String string4 = new String('Geeks');  String string5 = new String('geeks');  // Comparing for String 1 != String 2  System.out.println(  'Comparing ' + string1 + ' and ' + string2  + ' : ' + string1.equalsIgnoreCase(string2));  // Comparing for String 3 = String 4  System.out.println(  'Comparing ' + string3 + ' and ' + string4  + ' : ' + string3.equalsIgnoreCase(string4));  // Comparing for String 4 = String 5  System.out.println(  'Comparing ' + string4 + ' and ' + string5  + ' : ' + string4.equalsIgnoreCase(string5));  // Comparing for String 1 != String 4  System.out.println(  'Comparing ' + string1 + ' and ' + string4  + ' : ' + string1.equalsIgnoreCase(string4));  } }>

산출
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>

4. Objects.equals() 사용:

Object.equals(객체 a, 객체 b) 메서드는 인수가 서로 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다. 결과적으로 두 인수가 모두 Null이면 true가 반환되고, 정확히 하나의 인수가 Null이면 false가 반환됩니다. 그렇지 않으면 첫 번째 인수의 equals() 메소드를 사용하여 동등성을 판별합니다. 통사론:

public static boolean equals(Object a, Object b)>

여기서 a와 b는 모두 비교할 문자열 개체입니다.

예:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   null   Input 2:   null   Output:   true>

프로그램:

자바
// Java program to Compare two strings // lexicographically import java.util.*; public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Geeks');  String string3 = new String('Geeks');  String string4 = null;  String string5 = null;  // Comparing for String 1 != String 2  System.out.println(  'Comparing ' + string1 + ' and ' + string2  + ' : ' + Objects.equals(string1, string2));  // Comparing for String 2 = String 3  System.out.println(  'Comparing ' + string2 + ' and ' + string3  + ' : ' + Objects.equals(string2, string3));  // Comparing for String 1 != String 4  System.out.println(  'Comparing ' + string1 + ' and ' + string4  + ' : ' + Objects.equals(string1, string4));  // Comparing for String 4 = String 5  System.out.println(  'Comparing ' + string4 + ' and ' + string5  + ' : ' + Objects.equals(string4, string5));  } }>

산출
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>

5. 두 문자열 비교를 위해 String.compareTo() 사용

문자열 CompareTo()의 구문

int str1.compareTo(String str2)>

일하고 있는: 다음 값을 비교하여 다음과 같이 반환합니다.

  1. (문자열1> 문자열2)인 경우 다음을 반환합니다. 양수 값 .
  2. 두 문자열이 모두 사전식으로 동일한 경우, 즉 (string1 == string2) 반환됩니다. 0 .
  3. if(문자열1 음수 값 .

아래는 위의 방법을 구현한 것입니다.

자바
// Java program to Compare two strings // Using String.compareTo()  import java.util.*; // Diver Class public class GFG {  public static void check(String string1, String string2)  {  if (string1.compareTo(string2)!=0) {  System.out.println(string1 + ' ' + string2  + ' : Not Equal');  }  else {  System.out.println(string1 + ' ' + string2  + ' : Equal');  }  }  // main function  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Geeks');  String string3 = new String('Geeks');  String string4 = ' ';  String string5 = ' ';  // Comparing for String 1 != String 2  check(string1, string2);  // Comparing for String 2 = String 3  check(string2, string3);  // Comparing for String 1 != String 4  check(string1, string4);  // Comparing for String 4 = String 5  check(string4, string5);  } }>

산출
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

메모: NULL 문자열은 CompareTo() 메서드에 인수로 전달할 수 없습니다.

해당 주제에 대한 자세한 내용은 다음을 참조하세요. 문자열.비교To() 기사.

문자열 비교에 ==를 사용하지 않는 이유는 무엇입니까?

일반적으로 둘 다 같음() 그리고 == Java의 연산자는 객체를 비교하여 동등성을 확인하는 데 사용되지만 다음은 둘 사이의 몇 가지 차이점입니다.

  1. .equals() 메서드와 == 연산자의 주요 차이점은 하나는 메서드이고 다른 하나는 연산자라는 것입니다.
  2. 참조 비교를 위해 == 연산자를 사용할 수 있습니다. (주소 비교) 및 .equals() 메소드 내용 비교 .
    • s1과 s2는 모두 다른 객체를 참조합니다.
    • s1과 s2 비교에 == 연산자를 사용하면 둘 다 메모리에서 서로 다른 주소를 가지므로 결과는 거짓입니다.
    • 같음을 사용하면 s1과 s2에 지정된 값만 비교하기 때문에 결과는 참입니다.

해당 주제에 대한 자세한 내용은 다음을 참조하세요. 문자열 비교 기사.