이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

String.Compare 메서드 (String, Int32, String, Int32, Int32, StringComparison)

 

게시 날짜: 2016년 11월

지정된 규칙을 사용하여 지정된 두 String 개체의 부분 문자열을 비교하고 정렬 순서에서 두 개체의 상대 위치를 나타내는 정수를 반환합니다.

네임스페이스:   System
어셈블리:  mscorlib(mscorlib.dll에 있음)

public static int Compare(
	string strA,
	int indexA,
	string strB,
	int indexB,
	int length,
	StringComparison comparisonType
)

매개 변수

strA
Type: System.String

비교에 사용할 첫 번째 문자열입니다.

indexA
Type: System.Int32

strA에 있는 부분 문자열의 위치입니다.

strB
Type: System.String

비교에 사용할 두 번째 문자열입니다.

indexB
Type: System.Int32

strB에 있는 부분 문자열의 위치입니다.

length
Type: System.Int32

비교할 부분 문자열의 최대 문자 수입니다.

comparisonType
Type: System.StringComparison

비교에 사용할 규칙을 지정하는 열거형 값 중 하나입니다.

반환 값

Type: System.Int32

두 비교 대상 간의 어휘 관계를 나타내는 32비트 부호 있는 정수입니다.

조건

0보다 작음

strA의 부분 문자열이 정렬 순서에서 strB의 부분 문자열 앞에 오는 경우

0

정렬 순서에서 같은 위치에서 부분 문자열이 발생 또는 length 매개 변수가 0입니다.

0보다 큼

에 있는 부분 문자열 strA follllows 부분 문자열에서 strB 정렬 순서에서.

Exception Condition
ArgumentOutOfRangeException

indexAstrA.Length보다 큽니다.

또는

indexBstrB.Length보다 큽니다.

또는

indexA, indexB 또는 length가 음수입니다.

또는

indexA 또는 indexBnull이고 length가 0보다 큽니다.

ArgumentException

comparisonTypeStringComparison 값이 아닙니다.

비교할 부분 문자열 시작 strA 에서 indexAstrB 에서 indexB합니다. 둘 다 indexAindexB 0부터 시작 됩니다; 즉, 첫 번째 문자의 strAstrB 0, 하나를 배치 하지 합니다. 첫 번째 부분 문자열의 길이 길이의 strAindexA 1을 더한 합니다. 두 번째 부분 문자열의 길이 길이의 strBindexB 1을 더한 합니다.

비교할 문자 수는 두 부분 문자열의 길이가 더 작은 값 및 length합니다. indexA, indexB, 및 length 매개 변수는 음수일 수 없습니다.

comparisonType 매개 변수 여부를 나타냅니다 비교는 현재 또는 고정 문화권을 사용 해야 인식 또는 비교 대상의 대/소문자 무시 (문화권 구분) 단어를 사용 하 여 또는 서 수 (문화권) 정렬 규칙.

하나 또는 둘 다 비교 대상이 null합니다. 기본적으로 모든 문자열을 포함 하 여 빈 문자열 (""), null 참조; 보다 큰 것으로 간주 서로 다른 두 개의 null 참조 비교 합니다.

같지 않음이 검색 또는 두 부분 문자열 비교를 종료 합니다. 그러나 두 문자열이 한 문자열의 끝을 비교 하는 경우 다른 문자열에 문자가 남아 문자가 남아 있는 문자열은 큰 것으로 간주 합니다. 반환 값은 마지막으로 수행한 비교의 결과입니다.

비교는 대/소문자 culture 별 규칙에 의해 영향을 예기치 않은 결과가 발생할 수 있습니다. 예를 들어, 터키어, 다음 예제에서는 잘못 된 결과가 발생의 파일 시스템에서 문자 "i"에 대 한 대/소문자 규칙을 사용 하지 않으므로 "file"의 합니다.

static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, true) == 0);
}

"file"는 서 수 비교를 사용 하 여 경로 이름을 비교 합니다. 이 작업을 수행 하는 올바른 코드는 다음과 같습니다.

static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, StringComparison.OrdinalIgnoreCase) == 0);
}

호출자 참고 사항:

문자 집합에는 무시할 수 있는 문자가 포함됩니다. Compare(String, Int32, String, Int32, Int32, StringComparison) 메서드는 언어 또는 문화권 구분 비교를 수행 하는 경우 이러한 문자를 고려 하지 않습니다. 비교에는 무시할 수 있는 문자를 인식 하려면의 값을 제공 StringComparison.Ordinal 또는 StringComparison.OrdinalIgnoreCase 에 대 한는 comparisonType 매개 변수입니다.

다음 예제에서는 두 부분 문자열을 비교합니다.

// Sample for String.Compare(String, Int32, String, Int32, Int32)
using System;

class Sample {
    public static void Main() {
//                 0123456
    String str1 = "machine";
    String str2 = "device";
    String str;
    int result;

    Console.WriteLine();
    Console.WriteLine("str1 = '{0}', str2 = '{1}'", str1, str2);
    result = String.Compare(str1, 2, str2, 0, 2);
    str = ((result < 0) ? "less than" : ((result > 0) ? "greater than" : "equal to"));
    Console.Write("Substring '{0}' in '{1}' is ", str1.Substring(2, 2), str1);
    Console.Write("{0} ", str);
    Console.WriteLine("substring '{0}' in '{1}'.", str2.Substring(0, 2), str2);
    }
}
/*
This example produces the following results:

str1 = 'machine', str2 = 'device'
Substring 'ch' in 'machine' is less than substring 'de' in 'device'.
*/

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
2.0 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: