.NET은 문자열 값을 비교하는 몇 가지 메서드를 제공합니다. 다음 표에서는 값 비교 메서드를 나열하고 설명합니다.
메서드 이름 | 사용하세요 |
---|---|
String.Compare | 두 문자열의 값을 비교합니다. 정수 값을 반환합니다. |
String.CompareOrdinal | 로컬 문화권과 관계없이 두 문자열을 비교합니다. 정수 값을 반환합니다. |
String.CompareTo | 현재 문자열 개체를 다른 문자열과 비교합니다. 정수 값을 반환합니다. |
String.StartsWith | 문자열이 전달된 문자열로 시작하는지 여부를 결정합니다. 부울 값을 반환합니다. |
String.EndsWith | 문자열이 전달된 문자열로 끝나는지 여부를 결정합니다. 부울 값을 반환합니다. |
String.Contains | 다른 문자열 내에서 문자 또는 문자열이 발생하는지 여부를 결정합니다. 부울 값을 반환합니다. |
String.Equals | 두 문자열이 같은지 여부를 확인합니다. 부울 값을 반환합니다. |
String.IndexOf | 검사할 문자열의 시작부터 시작하여 문자 또는 문자열의 인덱스 위치를 반환합니다. 정수 값을 반환합니다. |
String.LastIndexOf | 검사할 문자열의 끝에서 시작하여 문자 또는 문자열의 인덱스 위치를 반환합니다. 정수 값을 반환합니다. |
Compare
메서드
정적 String.Compare 메서드는 두 문자열을 비교하는 철저한 방법을 제공합니다. 이 메서드는 문화적으로 인식됩니다. 이 함수를 사용하여 두 문자열 또는 두 문자열의 부분 문자열을 비교할 수 있습니다. 또한 대/소문자와 문화적 차이를 고려하거나 무시하는 오버로드가 제공됩니다. 다음 표에서는 이 메서드가 반환할 수 있는 세 가지 정수 값을 보여 있습니다.
반환 값 | 조건 |
---|---|
음수 정수 | 첫 번째 문자열은 정렬 순서로 두 번째 문자열 앞에 섰습니다. -또는- 첫 번째 문자열은 .입니다 null . |
0 | 첫 번째 문자열과 두 번째 문자열은 같습니다. -또는- 두 문자열은 모두 .입니다 null . |
양의 정수 -또는- 1 |
첫 번째 문자열은 정렬 순서의 두 번째 문자열을 따릅니다. -또는- 두 번째 문자열은 .입니다 null . |
중요합니다
이 String.Compare 메서드는 주로 문자열을 정렬하거나 정렬할 때 사용하기 위한 것입니다. 이 메서드를 String.Compare 사용하여 같음을 테스트하면 안 됩니다(즉, 한 문자열이 다른 문자열보다 작거나 큰지 여부에 관계없이 반환 값 0을 명시적으로 찾으려면). 대신 두 문자열이 같은지 여부를 확인하려면 메서드를 String.Equals(String, String, StringComparison) 사용합니다.
다음 예제에서는 메서드를 String.Compare 사용하여 두 문자열의 상대 값을 확인합니다.
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
이 예제는 -1
콘솔에 표시됩니다.
앞의 예제는 기본적으로 문화권을 구분합니다. 문화권을 구분하지 않는 문자열 비교를 수행하려면 String.Compare권 매개 변수를 제공하여 사용할 문화권을 지정할 수 있는 메서드의 오버로드를 사용합니다. 메서드를 사용하여 String.Compare 문화권을 구분하지 않는 비교를 수행하는 방법을 보여 주는 예제는 문화권을 구분하지 않는 문자열 비교를 참조하세요.
CompareOrdinal
메서드
이 메서드는 String.CompareOrdinal 로컬 문화권을 고려하지 않고 두 문자열 개체를 비교합니다. 이 메서드의 반환 값은 이전 테이블의 메서드에서 반환한 Compare
값과 동일합니다.
중요합니다
이 String.CompareOrdinal 메서드는 주로 문자열을 정렬하거나 정렬할 때 사용하기 위한 것입니다. 이 메서드를 String.CompareOrdinal 사용하여 같음을 테스트하면 안 됩니다(즉, 한 문자열이 다른 문자열보다 작거나 큰지 여부에 관계없이 반환 값 0을 명시적으로 찾으려면). 대신 두 문자열이 같은지 여부를 확인하려면 메서드를 String.Equals(String, String, StringComparison) 사용합니다.
다음 예제에서는 메서드를 CompareOrdinal
사용하여 두 문자열의 값을 비교합니다.
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
이 예제는 -32
콘솔에 표시됩니다.
CompareTo
메서드
이 메서드는 String.CompareTo 현재 문자열 개체가 캡슐화하는 문자열을 다른 문자열 또는 개체와 비교합니다. 이 메서드의 반환 값은 이전 테이블의 메서드에서 반환한 String.Compare 값과 동일합니다.
중요합니다
이 String.CompareTo 메서드는 주로 문자열을 정렬하거나 정렬할 때 사용하기 위한 것입니다. 이 메서드를 String.CompareTo 사용하여 같음을 테스트하면 안 됩니다(즉, 한 문자열이 다른 문자열보다 작거나 큰지 여부에 관계없이 반환 값 0을 명시적으로 찾으려면). 대신 두 문자열이 같은지 여부를 확인하려면 메서드를 String.Equals(String, String, StringComparison) 사용합니다.
다음 예제에서는 개체와 String.CompareTo 개체를 string1
비교 하는 메서드를 string2
사용 합니다.
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
이 예제는 -1
콘솔에 표시됩니다.
메서드의 String.CompareTo 모든 오버로드는 기본적으로 문화권 구분 및 대/소문자 구분 비교를 수행합니다. 문화권을 구분하지 않는 비교를 수행할 수 있는 이 메서드의 오버로드가 제공되지 않습니다. 코드 명확성을 위해 문화권 구분 작업 또는 String.Compare
문화권을 구분하지 않는 작업에 대해 지정하는 CultureInfo.CurrentCulture 대신 메서드를 사용하는 CultureInfo.InvariantCulture 것이 좋습니다. 메서드를 사용하여 String.Compare
문화권을 구분하고 문화권을 구분하지 않는 비교를 수행하는 방법을 보여 주는 예제는 Culture-Insensitive 문자열 비교 수행을 참조하세요.
Equals
메서드
이 메서드는 String.Equals 두 문자열이 같은지 쉽게 확인할 수 있습니다. 대/소문자를 구분하는 이 메서드는 값 true
또는 false
부울 값을 반환합니다. 다음 예제와 같이 기존 클래스에서 사용할 수 있습니다. 다음 예제에서는 메서드를 Equals
사용하여 문자열 개체에 "Hello World" 구가 포함되어 있는지 여부를 확인합니다.
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
이 예제는 True
콘솔에 표시됩니다.
이 메서드를 정적 메서드로 사용할 수도 있습니다. 다음은 정적 메서드를 사용하는 두 문자열 개체를 비교하는 예제입니다.
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
이 예제는 True
콘솔에 표시됩니다.
StartsWith
및 EndsWith
메서드
이 메서드를 String.StartsWith 사용하여 문자열 개체가 다른 문자열을 포함하는 동일한 문자로 시작하는지 여부를 확인할 수 있습니다. 이 대/소문자 구분 메서드는 현재 문자열 개체가 전달된 문자열로 시작하는 경우와 true
그렇지 않은 경우 반환 false
합니다. 다음 예제에서는 이 메서드를 사용하여 문자열 개체가 "Hello"로 시작하는지 확인합니다.
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
이 예제는 True
콘솔에 표시됩니다.
이 메서드는 String.EndsWith 전달된 문자열을 현재 문자열 개체의 끝에 있는 문자와 비교합니다. 부울 값도 반환합니다. 다음 예제에서는 메서드를 사용하여 문자열의 끝을 확인합니다 EndsWith
.
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
이 예제는 False
콘솔에 표시됩니다.
IndexOf
및 LastIndexOf
메서드
이 메서드를 String.IndexOf 사용하여 문자열 내에서 특정 문자가 처음 나타나는 위치를 확인할 수 있습니다. 이 대/소문자 구분 메서드는 문자열의 시작 부분에서 계산을 시작하고 0부터 시작하는 인덱스를 사용하여 전달된 문자의 위치를 반환합니다. 문자를 찾을 수 없으면 -1 값이 반환됩니다.
다음 예제에서는 메서드를 IndexOf
사용하여 문자열에서 'l
' 문자의 첫 번째 항목을 검색합니다.
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
이 예제는 2
콘솔에 표시됩니다.
메서드 String.LastIndexOf 는 문자열 내에서 특정 문자가 마지막으로 나타나는 위치를 반환한다는 점을 제외하고 메서드와 비슷합니다 String.IndexOf
. 대/소문자를 구분하며 0부터 시작하는 인덱스입니다.
다음 예제에서는 메서드를 LastIndexOf
사용하여 문자열에서 'l
' 문자의 마지막 항목을 검색합니다.
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
이 예제는 9
콘솔에 표시됩니다.
두 메서드는 메서드와 함께 String.Remove 사용할 때 유용합니다. 문자 또는 IndexOf
메서드를 LastIndexOf
사용하여 문자의 위치를 검색한 다음, 해당 문자 또는 해당 문자로 시작하는 단어를 제거하기 위해 메서드에 해당 위치를 Remove
제공할 수 있습니다.
참고하십시오
- .NET에서 문자열을 사용하는 모범 사례
- 기본 문자열 작업
- 문화에 구애받지 않는 문자열 작업을 수행하기
- 가중치 테이블 정렬 - Windows에서 .NET Framework 및 .NET Core 1.0-3.1에서 사용
- 기본 유니코드 데이터 정렬 요소 테이블 - 모든 플랫폼의 .NET 5 및 Linux 및 macOS의 .NET Core에서 사용
.NET