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

C#에서 두 문자열을 사전순으로 비교하는 방법

C#에서 문자열을 사전순(lexicographical)으로 비교하려면 Compare() 메서드를 사용합니다. 이 메서드는 두 문자열을 비교한 결과를 정수 값으로 반환하며, 그 기준은 다음과 같습니다.

If str1이 str2보다 작으면 → -1 반환
If str1과 str2가 같으면 → 0 반환
If str1이 str2보다 크면 → 1 반환

비교할 두 문자열을 String.Compare() 메서드에 전달하여 비교할 수 있습니다.

string.Compare(string1, string2);

예제

아래 코드를 실행하면 C#에서 두 문자열을 비교하는 방법을 직접 확인할 수 있습니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
    class MyApplication {
        static void Main(string[] args) {
            string string1 = null;
            string string2 = null;
            string1 = "amit";
            string2 = "Amit";
            int myOutput = 0;
            myOutput = string.Compare(string1, string2);
            Console.WriteLine(myOutput.ToString());
            Console.ReadLine();
        }
    }
}

실행 결과

-1

위 예제에서 "amit""Amit"를 비교하면 -1이 출력됩니다. 이는 대소문자를 구분하는 기본 비교 방식에서 소문자 'a'의 유니코드 값이 대문자 'A'보다 크기 때문입니다. 만약 대소문자를 구분하지 않고 비교하고 싶다면, string.Compare(string1, string2, true)처럼 세 번째 인수로 true(ignoreCase 옵션)를 전달하면 됩니다. 이 경우 결과는 0이 되어 두 문자열이 동일하다고 판단됩니다.