Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# String.Equals(String, String) 메서드 – 두 문자열 값 비교하기

C#에서 Equals() 메서드는 두 개의 String 객체가 서로 같은 값을 가지고 있는지 여부를 판별할 때 사용합니다. 두 문자열의 내용이 완전히 일치하면 true를, 하나라도 다르면 false를 반환하며, 반환 타입은 불리언(Boolean)입니다.


문자열 비교는 조건 분기, 검색, 데이터 유효성 검사 등 거의 모든 프로그램에서 빈번하게 등장하기 때문에, Equals() 메서드의 동작 원리를 정확히 이해해 두면 실무에서 큰 도움이 됩니다.


문법(Syntax)


bool string.Equals(string s1, string s2)

위 문법에서 s1s2는 서로 비교하고자 하는 두 개의 문자열입니다. 두 문자열의 값이 같으면 true, 다르면 false가 반환됩니다.


예제 1


using System;
public class Demo {
    public static void Main(string[] args) {
        string s1 = "Kevin";
        string s2 = "Tom";
        string s3 = s2;
        Console.WriteLine("String1 = "+s1);
        Console.WriteLine("String2 = "+s2);
        Console.WriteLine("Are both the strings equal? = "+s1.Equals(s2));
        Console.WriteLine("Are both the strings equal? = "+s2.Equals(s3));
    }
}

출력 결과


String1 = Kevin
String2 = Tom
Are both the strings equal? = False
Are both the strings equal? = True

위 예제에서 s1("Kevin")과 s2("Tom")은 값이 서로 다르기 때문에 false가 반환됩니다. 반면 s3는 s2를 그대로 참조하여 생성된 변수이므로, s2.Equals(s3)는 true를 반환합니다.


예제 2


using System;
public class Demo {
    public static void Main(string[] args) {
        string s1 = "David";
        string s2 = "David";
        string s3 = s2;
        string s4 = "Tom";
        string s5 = s4;
        Console.WriteLine("String1 = "+s1);
        Console.WriteLine("String2 = "+s2);
        Console.WriteLine("String3 = "+s3);
        Console.WriteLine("String4 = "+s4);
        Console.WriteLine("String5 = "+s5);
        Console.WriteLine("Is s1 and s2 equal? = "+s1.Equals(s2));
        Console.WriteLine("Is s2 and s3 equal? = "+s2.Equals(s3));
        Console.WriteLine("Is s3 and s4 equal? = "+s3.Equals(s4));
        Console.WriteLine("Is s4 and s5 equal? = "+s4.Equals(s5));
    }
}

출력 결과


String1 = David
String2 = David
String3 = David
String4 = Tom
String5 = Tom
Is s1 and s2 equal? = True
Is s2 and s3 equal? = True
Is s3 and s4 equal? = False
Is s4 and s5 equal? = True

이 예제를 통해 몇 가지 중요한 특징을 확인할 수 있습니다. 먼저, 별도로 선언된 s1과 s2라도 저장된 값이 "David"로 동일하다면 true가 반환됩니다. 즉, Equals() 메서드는 객체의 참조(메모리 주소)가 아니라 실제 문자열 값을 기준으로 비교한다는 점입니다. 또한 s2와 s3처럼 한 변수를 다른 변수에 대입한 경우에는 당연히 같은 값을 가지므로 true가 되고, 값이 다른 "David"와 "Tom"을 비교하면 false가 반환됩니다.


정리


C#의 Equals(String, String) 메서드는 대소문자까지 포함한 정확한 문자열 일치 여부를 판단하는 안전하고 직관적인 방법입니다. == 연산자와 달리 null 참조 예외 없이 안정적으로 비교할 수 있어, 문자열 비교 로직을 구현할 때 널리 활용됩니다.