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

String.Compare 메서드 (String, String)

 

지정된 두 String 개체를 비교하고 정렬 순서에서 두 개체의 상대 위치를 나타내는 정수를 반환합니다.

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

public static int Compare(
	string strA,
	string strB
)

매개 변수

strA
Type: System.String

비교할 첫째 문자열입니다.

strB
Type: System.String

비교할 둘째 문자열입니다.

반환 값

Type: System.Int32

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

조건

0보다 작음

strA가 정렬 순서에서 strB 앞에 오는 경우

0

strA가 정렬 순서에서 strB와 동일한 위치에서 발생합니다.

0보다 큼

strA가 정렬 순서에서 strB 뒤에 오는 경우

비교 현재 문화권을 사용 하 여 대/소문자 규칙 및 개별 문자의 알파벳 순서 등의 문화권 관련 정보를 얻습니다. 예를 들어 문자 정렬 순서를 앞 이나 뒤에 있는 문자에 따라 결정 하거나에 특정 문자 조합을 단일 문자로 처리 또는 대문자 및 소문자 특별 한 방식에서으로 비교는 culture 지정 합니다.

단어 정렬 규칙을 사용 하 여 비교 합니다. Word, 문자열 및 서 수 정렬 하는 방법에 대 한 자세한 내용은 참조 System.Globalization.CompareOptions합니다.

System_CAPS_warning경고

문자열을 비교할 때 호출 해야는Compare(String, String, StringComparison) 메서드에서 사용 하는 문자열 비교의 형식을 명시적으로 지정 하는 시켜야 하는 방법입니다. 자세한 내용은 .NET Framework에서 문자열 사용에 대한 유용한 정보을 참조하십시오.

하나 또는 둘 다 비교 대상이 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, String) 메서드는 문화권 구분 비교를 수행 하는 경우 이러한 문자를 고려 하지 않습니다. 예를 들어, 다음 코드에서 실행 되는 .NET Framework 4 하거나 "동물"와 "ani 메일" (소프트 하이픈 또는 U + 00AD 사용)의 문화권 구분 비교 두 문자열은 해당 나중을 나타냅니다.

using System;

public class Example
{
   public static void Main()
   {
      string s1 = "ani\u00ADmal";
      string s2 = "animal";

      Console.WriteLine("Comparison of '{0}' and '{1}': {2}", 
                        s1, s2, String.Compare(s1, s2));
   }
}
// The example displays the following output:
//       Comparison of 'ani-mal' and 'animal': 0

문자열 비교에서 무시할 수 있는 문자를 인식 하려면 호출는 Compare(String, String, StringComparison) 메서드 중 하나의 값을 제공 하 고 CompareOptions.Ordinal 또는 CompareOptions.OrdinalIgnoreCase 에 대 한는 comparisonType 매개 변수입니다.

다음 예제에서는 Compare(String, String) 메서드를 세 개의 문자열을 비교 합니다.

using System;

class Example
{
   static void Main()
   {
      // Create upper-case characters from their Unicode code units.
      String stringUpper = "\x0041\x0042\x0043";

      // Create lower-case characters from their Unicode code units.
      String stringLower = "\x0061\x0062\x0063";

      // Display the strings.
      Console.WriteLine("Comparing '{0}' and '{1}':", 
                        stringUpper, stringLower);

      // Compare the uppercased strings; the result is true.
      Console.WriteLine("The Strings are equal when capitalized? {0}",
                        String.Compare(stringUpper.ToUpper(), stringLower.ToUpper()) == 0 
                                       ? "true" : "false");

      // The previous method call is equivalent to this Compare method, which ignores case.
      Console.WriteLine("The Strings are equal when case is ignored? {0}",
                        String.Compare(stringUpper, stringLower, true) == 0
                                       ? "true" : "false" );
   }
} 
// The example displays the following output:
//       Comparing 'ABC' and 'abc':
//       The Strings are equal when capitalized? true
//       The Strings are equal when case is ignored? true

다음 예제에서는 ReverseStringComparer 클래스와 두 개의 문자열을 계산 하는 방법을 보여 줍니다.는 Compare 메서드.

using System;
using System.Text;
using System.Collections;

public class SamplesArrayList  {

	public static void Main()  {
		// Creates and initializes a new ArrayList.
		ArrayList myAL = new ArrayList();
		myAL.Add("Eric");
		myAL.Add("Mark");
		myAL.Add("Lance");
		myAL.Add("Rob");
		myAL.Add("Kris");
		myAL.Add("Brad");
		myAL.Add("Kit");
		myAL.Add("Bradley");
		myAL.Add("Keith");
		myAL.Add("Susan");

		// Displays the properties and values of	the	ArrayList.
		Console.WriteLine( "Count: {0}", myAL.Count );

		PrintValues ("Unsorted", myAL );
		myAL.Sort();
		PrintValues("Sorted", myAL );
		myAL.Sort(new ReverseStringComparer() );
		PrintValues ("Reverse" , myAL );


		string [] names = (string[]) myAL.ToArray (typeof(string));


	}
	public static void PrintValues(string title, IEnumerable	myList )  {
		Console.Write ("{0,10}: ", title);
		StringBuilder sb = new StringBuilder();
		foreach (string s in myList) {
			sb.AppendFormat( "{0}, ", s);
		}
		sb.Remove (sb.Length-2,2);
		Console.WriteLine(sb);
	}
}
public class ReverseStringComparer : IComparer {
   public int Compare (object x, object y) {
	   string s1 = x as string;
	   string s2 = y as string;	  
	   //negate the return value to get the reverse order
	   return - String.Compare (s1,s2);

   }
}

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