내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

String.Compare 메서드 (String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)

2013-12-13

지정된 두 String 개체의 부분 문자열을 비교하고 정렬 순서에서 두 부분 문자열 간의 관계를 나타내는 정수를 반환합니다. 지정된 비교 옵션 및 문화권별 정보가 비교에 영향을 줍니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

public static int Compare(
	string strA,
	int indexA,
	string strB,
	int indexB,
	int length,
	CultureInfo culture,
	CompareOptions options
)

매개 변수

strA
형식: System.String
첫 번째 문자열입니다.
indexA
형식: System.Int32
strA에 있는 부분 문자열의 시작 위치입니다.
strB
형식: System.String
두 번째 문자열입니다.
indexB
형식: System.Int32
strB에 있는 부분 문자열의 시작 위치입니다.
length
형식: System.Int32
비교할 부분 문자열의 최대 문자 수입니다.
culture
형식: System.Globalization.CultureInfo
문화권별 비교 정보를 제공하는 문화입니다.
options
형식: System.Globalization.CompareOptions
대/소문자 또는 기호 무시 여부와 같이 비교를 수행할 때 사용할 옵션입니다.

반환 값

형식: System.Int32
두 부분 문자열 간의 어휘 관계를 나타내는 정수를 반환합니다.

조건

0보다 작음

strA의 부분 문자열이 strB의 부분 문자열보다 작습니다.

0

부분 문자열이 같거나 length가 0입니다.

0보다 큼

strA의 부분 문자열이 strB의 부분 문자열보다 큽니다.

예외조건
ArgumentException

optionsCompareOptions 값이 아닌 경우

ArgumentOutOfRangeException

indexAstrA.Length보다 크거나 같은 경우

-또는-

indexBstrB.Length보다 크거나 같은 경우

-또는-

indexA, indexB 또는 length가 음수인 경우

-또는-

strA 또는 strBnull이고 length가 0보다 큰 경우

ArgumentNullException

culturenull인 경우

비교할 부분 문자열은 strAindexA 위치 및 strBindexB 위치에서 시작됩니다. 첫 번째 부분 문자열의 길이는 strA의 길이에서 indexA를 뺀 값입니다. 두 번째 부분 문자열의 길이는 strB의 길이에서 indexB를 뺀 값입니다.

비교할 문자 수는 두 개의 부분 문자열 길이와 length 중에서 가장 작은 수입니다. indexA, indexBlength 매개 변수에는 음수를 사용할 수 없습니다.

비교하는 경우 culture 매개 변수를 사용하여 개별 문자의 대/소문자 규칙과 사전순 등의 문화권별 정보를 얻습니다. 예를 들어 특정 문화권에서는 특정 문자 조합을 단일 문자로 처리하거나, 대/소문자를 특별한 방식으로 비교하거나, 문자의 정렬 순서를 앞이나 뒤에 있는 문자에 따라 결정하도록 지정할 수 있습니다.

주의주의:

Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) 메서드는 주로 사전순으로 정렬하는 작업에 사용하도록 설계되었습니다. 두 부분 문자열이 동일한지 여부를 확인할 용도로는 이 메서드를 사용하지 말아야 합니다. 즉, 이 메서드를 호출하여 반환 값이 0인지 테스트하지 말아야 합니다. 두 문자열이 같은지를 확인하려면 Equals 메서드를 호출합니다.

strAstrB 중 하나 또는 둘 모두는 null일 수 있습니다. 정의에 따르면 String.Empty를 비롯한 모든 문자열은 null 참조보다 큰 것으로 간주되고, 두 null 참조는 서로 같은 것으로 간주됩니다.

options 매개 변수를 통해 비교를 자세히 지정할 수 있습니다. 이 매개 변수는 하나 이상의 CompareOptions 열거형 멤버로 구성됩니다. 그러나 이 메서드의 용도는 문화권 구분 문자열 비교를 수행하는 것이므로 CompareOptions.OrdinalCompareOptions.OrdinalIgnoreCase 값은 효과가 없습니다.

불일치가 발견되거나 두 부분 문자열 비교가 완료되면 비교가 종결됩니다. 그러나 문자열 중 하나를 끝까지 비교한 결과 두 문자열이 같은데 다른 문자열에 문자가 남아 있는 경우 문자가 남아 있는 문자열이 더 큰 것으로 간주됩니다. 반환 값은 마지막으로 수행한 비교의 결과입니다.

다음 예제에서는 Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) 메서드를 사용하여 두 사람의 성을 비교한 다음 사전순으로 나열합니다.


public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      string name1 = "Jack Smith";
      string name2 = "John Doe";

      // Get position of space character.
      int index1 = name1.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int index2 = name2.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int length = Math.Max(name1.Length, name2.Length);

      outputBlock.Text += "Sorted alphabetically by last name:\n";
      if (String.Compare(name1, index1, name2, index2, length, 
                         new CultureInfo("en-US"), CompareOptions.IgnoreCase) < 0)
         outputBlock.Text += name1 + "\n" + name2; 
      else
         outputBlock.Text += name2 + "\n" + name1; 
   }
}


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시:
© 2014 Microsoft