C#에서 두 StringBuilder 객체의 내용을 비교하려면 Equals 메서드를 사용하면 됩니다. 이 메서드는 두 StringBuilder가 담고 있는 문자열이 서로 같은지 여부를 판단하여 불리언 값으로 반환합니다.
비교할 두 개의 StringBuilder 준비
먼저 비교 대상이 될 두 개의 StringBuilder를 생성하고 각각 문자열을 추가합니다.
// 첫 번째 StringBuilder
StringBuilder str1 = new StringBuilder();
str1.Append("Tim");
str1.Append("Tom");
str1.Append("Henry");
// 두 번째 StringBuilder
StringBuilder str2 = new StringBuilder();
str2.Append("John");
str2.Append("David");
str2.Append("Beth");Equals() 메서드로 비교하기
이제 Equals() 메서드를 호출하여 두 객체의 내용이 같은지 확인할 수 있습니다.
if (str1.Equals(str2)) {
Console.WriteLine("내용이 같습니다!");
}다음은 위 과정 전체를 포함한 완성된 코드입니다.
예제
using System;
using System.Text;
class Demo {
static void Main() {
// 첫 번째 StringBuilder
StringBuilder str1 = new StringBuilder();
str1.Append("Tim");
str1.Append("Tom");
str1.Append("Henry");
// 두 번째 StringBuilder
StringBuilder str2 = new StringBuilder();
str2.Append("John");
str2.Append("David");
str2.Append("Beth");
// 동일 여부 확인
if (str1.Equals(str2)) {
Console.WriteLine("내용이 같습니다!");
} else {
Console.WriteLine("내용이 다릅니다!");
}
}
}실행 결과
내용이 다릅니다!
두 StringBuilder에 저장된 문자열이 서로 다르기 때문에 "내용이 다릅니다!"가 출력됩니다.
참고 사항
StringBuilder.Equals(StringBuilder) 메서드는 단순히 문자열 값만 비교하지 않는다는 점에 유의해야 합니다. 이 메서드는 두 인스턴스의 문자열 값, 용량(Capacity), 그리고 최대 용량(MaxCapacity)을 모두 비교합니다. 따라서 문자열 내용이 같더라도 용량이 다르면 false를 반환할 수 있습니다.
순수하게 문자열 내용만 비교하고 싶다면 ToString() 메서드로 변환한 후 일반적인 문자열 비교를 수행하는 것이 더 안전한 방법입니다.