C#의 Char.CompareTo() 메서드는 현재 문자(char) 인스턴스를 지정된 개체 또는 값 형식과 비교하여, 정렬 순서에서 이 인스턴스가 앞에 오는지, 뒤에 오는지, 아니면 동일한 위치에 있는지를 나타내는 정수 값을 반환합니다.
구문
Char.CompareTo() 메서드의 기본 구문은 다음과 같습니다.
public int CompareTo (char val); public int CompareTo (object val);
첫 번째 구문에서 val은 비교 대상이 되는 char 개체이며, 두 번째 구문에서는 이 인스턴스와 비교할 개체 또는 null을 의미합니다.
반환 값
CompareTo() 메서드의 반환 값은 비교 결과에 따라 다음과 같이 결정됩니다.
- 0 : 현재 인스턴스가 정렬 순서에서 val과 같은 위치에 있는 경우
- 0보다 작은 값 : 현재 인스턴스가 val보다 앞에 오는 경우
- 0보다 큰 값 : 현재 인스턴스가 val보다 뒤에 오는 경우
예제 1
다음은 Char.CompareTo() 메서드를 구현하는 첫 번째 예제입니다.
using System;
public class Demo {
public static void Main(){
char val = 'A';
Console.WriteLine("Return Value = "+'A'.CompareTo(val));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Return Value = 0
'A'와 'A'는 동일한 문자이므로 정렬 순서상 위치가 같아 0이 반환됩니다.
예제 2
이번에는 서로 다른 문자를 비교하는 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
char val = 'B';
Console.WriteLine("Return Value = "+'D'.CompareTo(val));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Return Value = 2
'D'(유니코드 68)가 'B'(유니코드 66)보다 뒤에 위치하므로 두 문자의 유니코드 값 차이인 2가 반환됩니다. 이처럼 CompareTo() 메서드는 단순히 대소 관계만 알려주는 것이 아니라, 두 문자 간의 정렬 순서 차이를 수치로 확인할 수 있어 유용합니다.