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

C#에서 두 StringBuilder 개체가 같은지 확인하는 방법

C#에서 StringBuilder 동일성 비교하기

C#에서 두 StringBuilder 개체가 같은지 확인하려면 Equals() 메서드를 사용합니다. 이 메서드는 두 개체가 동일한 문자열 값을 가지고 있는지 여부에 따라 true 또는 false를 반환합니다.

참고로 StringBuilder는 == 연산자를 오버로드하지 않기 때문에, 참조가 아닌 내용 기준으로 비교하려면 반드시 Equals() 메서드를 사용해야 합니다.

예제 1

아래 코드에서는 세 개의 StringBuilder 개체를 생성한 뒤, strBuilder2strBuilder3를 할당하여 같은 인스턴스를 참조하도록 만들었습니다. 이후 Equals()로 두 개체를 비교합니다.

using System;
using System.Text;
public class Demo {
   public static void Main(String[] args){
      StringBuilder strBuilder1 = new StringBuilder("Tim");
      StringBuilder strBuilder2 = new StringBuilder("Tom");
      StringBuilder strBuilder3 = new StringBuilder();
      strBuilder2 = strBuilder3;
      Console.WriteLine("StringBuilder3과 StringBuilder2는 같은가? = " + strBuilder3.Equals(strBuilder2));
  }
}

출력 결과

StringBuilder3과 StringBuilder2는 같은가? = True

strBuilder2strBuilder3가 이제 동일한 개체를 참조하고 있으므로, 비교 결과는 True입니다.

예제 2

이번에는 서로 다른 개체이지만 동일한 문자열 값("Jacob")을 가진 두 StringBuilder를 비교해 보겠습니다.

using System;
using System.Text;
public class Demo {
   public static void Main(String[] args){
      StringBuilder strBuilder1 = new StringBuilder("Jacob");
      StringBuilder strBuilder2 = new StringBuilder("Jacob");
      Console.WriteLine("StringBuilder1과 StringBuilder2는 같은가? = " + strBuilder2.Equals(strBuilder1));
  }
}

출력 결과

StringBuilder1과 StringBuilder2는 같은가? = True

두 개체는 별개의 인스턴스지만 담고 있는 문자열 값이 "Jacob"으로 같기 때문에, Equals() 메서드는 True를 반환합니다. 즉, StringBuilder의 Equals()는 개체의 참조 여부뿐 아니라 내부 문자열 값까지 비교한다는 점을 알 수 있습니다.