.NET provides several methods to compare the values of strings. The following table lists and describes the value-comparison methods.
| Method name | Use |
|---|---|
| System.String.Compare | Compares the values of two strings. Returns an integer value. |
| System.String.CompareOrdinal | Compares two strings without regard to local culture. Returns an integer value. |
| System.String.CompareTo | Compares the current string object to another string. Returns an integer value. |
| System.String.StartsWith | Determines whether a string begins with the string passed. Returns a Boolean value. |
| System.String.EndsWith | Determines whether a string ends with the string passed. Returns a Boolean value. |
| System.String.Contains | Determines whether a character or string occurs within another string. Returns a Boolean value. |
| System.String.Equals | Determines whether two strings are the same. Returns a Boolean value. |
| System.String.IndexOf | Returns the index position of a character or string, starting from the beginning of the string you are examining. Returns an integer value. |
| System.String.LastIndexOf | Returns the index position of a character or string, starting from the end of the string you are examining. Returns an integer value. |
Compare method
The static System.String.Compare method provides a thorough way of comparing two strings. This method is culturally aware. You can use this function to compare two strings or substrings of two strings. Additionally, overloads are provided that regard or disregard case and cultural variance. The following table shows the three integer values that this method might return.
| Return value | Condition |
|---|---|
| A negative integer | The first string precedes the second string in the sort order. -or- The first string is null. |
| 0 | The first string and the second string are equal. -or- Both strings are null. |
| A positive integer -or- 1 |
The first string follows the second string in the sort order. -or- The second string is null. |
The following example uses the System.String.Compare method to determine the relative values of two strings.
sample · csharpsamples/snippets/csharp/VS_Snippets_CLR/conceptual.string.basicops/cs/compare.cs6
//<snippet5>
using System;
class Example
{
public static void Main()
{
Compare();
CompareOrdinal();
Console.Write("CompareTo: ");
CompareTo();
Console.Write("Equals: ");
Equals1();
Equals2();
StartsWith();
EndsWith();
IndexOf();
LastIndexOf();
}
public static void Compare()
{
//<snippet6>
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
//</snippet6>
}
public static void CompareOrdinal()
{
//<snippet7>
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
//</snippet7>
}
public static void CompareTo()
{
//<snippet8>
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
//</snippet8>
}
public static void Equals1()
{
//<snippet9>
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
//</snippet9>
}
public static void Equals2()
{
//<snippet10>
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
//</snippet10>
}
public static void StartsWith()
{
//<snippet11>
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
//</snippet11>
}
public static void EndsWith()
{
//<snippet12>
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
//</snippet12>
}
public static void IndexOf()
{
//<snippet13>
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
//</snippet13>
}
public static void LastIndexOf()
{
//<snippet14>
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
//</snippet14>
}
}
//</snippet5>sample · vbsamples/snippets/visualbasic/VS_Snippets_CLR/conceptual.string.basicops/vb/compare.vb6
'<snippet5>
Class Example
Public Shared Sub Main()
Compare()
CompareOrdinal()
CompareTo()
Equals1()
Equals2()
StartsWith()
EndsWith()
IndexOf()
LastIndexOf()
End Sub
Public Shared Sub Compare()
'<snippet6>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
'</snippet6>
End Sub
Public Shared Sub CompareOrdinal()
'<snippet7>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
'</snippet7>
End Sub
Public Shared Sub CompareTo()
'<snippet8>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
'</snippet8>
End Sub
Public Shared Sub Equals1()
'<snippet9>
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
'</snippet9>
End Sub
Public Shared Sub Equals2()
'<snippet10>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
'</snippet10>
End Sub
Public Shared Sub StartsWith()
'<snippet11>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
'</snippet11>
End Sub
Public Shared Sub EndsWith()
'<snippet12>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
'</snippet12>
End Sub
Public Shared Sub IndexOf()
'<snippet13>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
'</snippet13>
End Sub
Public Shared Sub LastIndexOf()
'<snippet14>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
'</snippet14>
End Sub
End Class
'</snippet5> This example displays -1 to the console.
The preceding example is culture-sensitive by default. To perform a culture-insensitive string comparison, use an overload of the System.String.Compare method that allows you to specify the culture to use by supplying a culture parameter. For an example that demonstrates how to use the System.String.Compare method to perform a culture-insensitive comparison, see Culture-insensitive string comparisons.
CompareOrdinal method
The System.String.CompareOrdinal method compares two string objects without considering the local culture. The return values of this method are identical to the values returned by the Compare method in the previous table.
The following example uses the CompareOrdinal method to compare the values of two strings.
sample · csharpsamples/snippets/csharp/VS_Snippets_CLR/conceptual.string.basicops/cs/compare.cs7
//<snippet5>
using System;
class Example
{
public static void Main()
{
Compare();
CompareOrdinal();
Console.Write("CompareTo: ");
CompareTo();
Console.Write("Equals: ");
Equals1();
Equals2();
StartsWith();
EndsWith();
IndexOf();
LastIndexOf();
}
public static void Compare()
{
//<snippet6>
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
//</snippet6>
}
public static void CompareOrdinal()
{
//<snippet7>
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
//</snippet7>
}
public static void CompareTo()
{
//<snippet8>
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
//</snippet8>
}
public static void Equals1()
{
//<snippet9>
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
//</snippet9>
}
public static void Equals2()
{
//<snippet10>
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
//</snippet10>
}
public static void StartsWith()
{
//<snippet11>
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
//</snippet11>
}
public static void EndsWith()
{
//<snippet12>
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
//</snippet12>
}
public static void IndexOf()
{
//<snippet13>
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
//</snippet13>
}
public static void LastIndexOf()
{
//<snippet14>
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
//</snippet14>
}
}
//</snippet5>sample · vbsamples/snippets/visualbasic/VS_Snippets_CLR/conceptual.string.basicops/vb/compare.vb7
'<snippet5>
Class Example
Public Shared Sub Main()
Compare()
CompareOrdinal()
CompareTo()
Equals1()
Equals2()
StartsWith()
EndsWith()
IndexOf()
LastIndexOf()
End Sub
Public Shared Sub Compare()
'<snippet6>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
'</snippet6>
End Sub
Public Shared Sub CompareOrdinal()
'<snippet7>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
'</snippet7>
End Sub
Public Shared Sub CompareTo()
'<snippet8>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
'</snippet8>
End Sub
Public Shared Sub Equals1()
'<snippet9>
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
'</snippet9>
End Sub
Public Shared Sub Equals2()
'<snippet10>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
'</snippet10>
End Sub
Public Shared Sub StartsWith()
'<snippet11>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
'</snippet11>
End Sub
Public Shared Sub EndsWith()
'<snippet12>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
'</snippet12>
End Sub
Public Shared Sub IndexOf()
'<snippet13>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
'</snippet13>
End Sub
Public Shared Sub LastIndexOf()
'<snippet14>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
'</snippet14>
End Sub
End Class
'</snippet5> This example displays -32 to the console.
CompareTo method
The System.String.CompareTo method compares the string that the current string object encapsulates to another string or object. The return values of this method are identical to the values returned by the System.String.Compare method in the previous table.
The following example uses the System.String.CompareTo method to compare the string1 object to the string2 object.
sample · csharpsamples/snippets/csharp/VS_Snippets_CLR/conceptual.string.basicops/cs/compare.cs8
//<snippet5>
using System;
class Example
{
public static void Main()
{
Compare();
CompareOrdinal();
Console.Write("CompareTo: ");
CompareTo();
Console.Write("Equals: ");
Equals1();
Equals2();
StartsWith();
EndsWith();
IndexOf();
LastIndexOf();
}
public static void Compare()
{
//<snippet6>
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
//</snippet6>
}
public static void CompareOrdinal()
{
//<snippet7>
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
//</snippet7>
}
public static void CompareTo()
{
//<snippet8>
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
//</snippet8>
}
public static void Equals1()
{
//<snippet9>
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
//</snippet9>
}
public static void Equals2()
{
//<snippet10>
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
//</snippet10>
}
public static void StartsWith()
{
//<snippet11>
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
//</snippet11>
}
public static void EndsWith()
{
//<snippet12>
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
//</snippet12>
}
public static void IndexOf()
{
//<snippet13>
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
//</snippet13>
}
public static void LastIndexOf()
{
//<snippet14>
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
//</snippet14>
}
}
//</snippet5>sample · vbsamples/snippets/visualbasic/VS_Snippets_CLR/conceptual.string.basicops/vb/compare.vb8
'<snippet5>
Class Example
Public Shared Sub Main()
Compare()
CompareOrdinal()
CompareTo()
Equals1()
Equals2()
StartsWith()
EndsWith()
IndexOf()
LastIndexOf()
End Sub
Public Shared Sub Compare()
'<snippet6>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
'</snippet6>
End Sub
Public Shared Sub CompareOrdinal()
'<snippet7>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
'</snippet7>
End Sub
Public Shared Sub CompareTo()
'<snippet8>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
'</snippet8>
End Sub
Public Shared Sub Equals1()
'<snippet9>
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
'</snippet9>
End Sub
Public Shared Sub Equals2()
'<snippet10>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
'</snippet10>
End Sub
Public Shared Sub StartsWith()
'<snippet11>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
'</snippet11>
End Sub
Public Shared Sub EndsWith()
'<snippet12>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
'</snippet12>
End Sub
Public Shared Sub IndexOf()
'<snippet13>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
'</snippet13>
End Sub
Public Shared Sub LastIndexOf()
'<snippet14>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
'</snippet14>
End Sub
End Class
'</snippet5> This example displays -1 to the console.
All overloads of the System.String.CompareTo method perform culture-sensitive and case-sensitive comparisons by default. No overloads of this method are provided that allow you to perform a culture-insensitive comparison. For code clarity, we recommend that you use the String.Compare method instead, specifying System.Globalization.CultureInfo.CurrentCulture for culture-sensitive operations or System.Globalization.CultureInfo.InvariantCulture for culture-insensitive operations. For examples that demonstrate how to use the String.Compare method to perform both culture-sensitive and culture-insensitive comparisons, see Performing Culture-Insensitive String Comparisons.
Equals method
The System.String.Equals method can easily determine if two strings are the same. This case-sensitive method returns a true or false Boolean value. It can be used from an existing class, as illustrated in the next example. The following example uses the Equals method to determine whether a string object contains the phrase "Hello World".
sample · csharpsamples/snippets/csharp/VS_Snippets_CLR/conceptual.string.basicops/cs/compare.cs9
//<snippet5>
using System;
class Example
{
public static void Main()
{
Compare();
CompareOrdinal();
Console.Write("CompareTo: ");
CompareTo();
Console.Write("Equals: ");
Equals1();
Equals2();
StartsWith();
EndsWith();
IndexOf();
LastIndexOf();
}
public static void Compare()
{
//<snippet6>
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
//</snippet6>
}
public static void CompareOrdinal()
{
//<snippet7>
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
//</snippet7>
}
public static void CompareTo()
{
//<snippet8>
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
//</snippet8>
}
public static void Equals1()
{
//<snippet9>
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
//</snippet9>
}
public static void Equals2()
{
//<snippet10>
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
//</snippet10>
}
public static void StartsWith()
{
//<snippet11>
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
//</snippet11>
}
public static void EndsWith()
{
//<snippet12>
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
//</snippet12>
}
public static void IndexOf()
{
//<snippet13>
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
//</snippet13>
}
public static void LastIndexOf()
{
//<snippet14>
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
//</snippet14>
}
}
//</snippet5>sample · vbsamples/snippets/visualbasic/VS_Snippets_CLR/conceptual.string.basicops/vb/compare.vb9
'<snippet5>
Class Example
Public Shared Sub Main()
Compare()
CompareOrdinal()
CompareTo()
Equals1()
Equals2()
StartsWith()
EndsWith()
IndexOf()
LastIndexOf()
End Sub
Public Shared Sub Compare()
'<snippet6>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
'</snippet6>
End Sub
Public Shared Sub CompareOrdinal()
'<snippet7>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
'</snippet7>
End Sub
Public Shared Sub CompareTo()
'<snippet8>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
'</snippet8>
End Sub
Public Shared Sub Equals1()
'<snippet9>
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
'</snippet9>
End Sub
Public Shared Sub Equals2()
'<snippet10>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
'</snippet10>
End Sub
Public Shared Sub StartsWith()
'<snippet11>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
'</snippet11>
End Sub
Public Shared Sub EndsWith()
'<snippet12>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
'</snippet12>
End Sub
Public Shared Sub IndexOf()
'<snippet13>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
'</snippet13>
End Sub
Public Shared Sub LastIndexOf()
'<snippet14>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
'</snippet14>
End Sub
End Class
'</snippet5> This example displays True to the console.
This method can also be used as a static method. The following example compares two string objects using a static method.
sample · csharpsamples/snippets/csharp/VS_Snippets_CLR/conceptual.string.basicops/cs/compare.cs10
//<snippet5>
using System;
class Example
{
public static void Main()
{
Compare();
CompareOrdinal();
Console.Write("CompareTo: ");
CompareTo();
Console.Write("Equals: ");
Equals1();
Equals2();
StartsWith();
EndsWith();
IndexOf();
LastIndexOf();
}
public static void Compare()
{
//<snippet6>
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
//</snippet6>
}
public static void CompareOrdinal()
{
//<snippet7>
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
//</snippet7>
}
public static void CompareTo()
{
//<snippet8>
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
//</snippet8>
}
public static void Equals1()
{
//<snippet9>
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
//</snippet9>
}
public static void Equals2()
{
//<snippet10>
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
//</snippet10>
}
public static void StartsWith()
{
//<snippet11>
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
//</snippet11>
}
public static void EndsWith()
{
//<snippet12>
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
//</snippet12>
}
public static void IndexOf()
{
//<snippet13>
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
//</snippet13>
}
public static void LastIndexOf()
{
//<snippet14>
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
//</snippet14>
}
}
//</snippet5>sample · vbsamples/snippets/visualbasic/VS_Snippets_CLR/conceptual.string.basicops/vb/compare.vb10
'<snippet5>
Class Example
Public Shared Sub Main()
Compare()
CompareOrdinal()
CompareTo()
Equals1()
Equals2()
StartsWith()
EndsWith()
IndexOf()
LastIndexOf()
End Sub
Public Shared Sub Compare()
'<snippet6>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
'</snippet6>
End Sub
Public Shared Sub CompareOrdinal()
'<snippet7>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
'</snippet7>
End Sub
Public Shared Sub CompareTo()
'<snippet8>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
'</snippet8>
End Sub
Public Shared Sub Equals1()
'<snippet9>
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
'</snippet9>
End Sub
Public Shared Sub Equals2()
'<snippet10>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
'</snippet10>
End Sub
Public Shared Sub StartsWith()
'<snippet11>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
'</snippet11>
End Sub
Public Shared Sub EndsWith()
'<snippet12>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
'</snippet12>
End Sub
Public Shared Sub IndexOf()
'<snippet13>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
'</snippet13>
End Sub
Public Shared Sub LastIndexOf()
'<snippet14>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
'</snippet14>
End Sub
End Class
'</snippet5> This example displays True to the console.
StartsWith and EndsWith methods
You can use the System.String.StartsWith method to determine whether a string object begins with the same characters that encompass another string. This case-sensitive method returns true if the current string object begins with the passed string and false if it does not. The following example uses this method to determine if a string object begins with "Hello".
sample · csharpsamples/snippets/csharp/VS_Snippets_CLR/conceptual.string.basicops/cs/compare.cs11
//<snippet5>
using System;
class Example
{
public static void Main()
{
Compare();
CompareOrdinal();
Console.Write("CompareTo: ");
CompareTo();
Console.Write("Equals: ");
Equals1();
Equals2();
StartsWith();
EndsWith();
IndexOf();
LastIndexOf();
}
public static void Compare()
{
//<snippet6>
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
//</snippet6>
}
public static void CompareOrdinal()
{
//<snippet7>
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
//</snippet7>
}
public static void CompareTo()
{
//<snippet8>
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
//</snippet8>
}
public static void Equals1()
{
//<snippet9>
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
//</snippet9>
}
public static void Equals2()
{
//<snippet10>
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
//</snippet10>
}
public static void StartsWith()
{
//<snippet11>
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
//</snippet11>
}
public static void EndsWith()
{
//<snippet12>
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
//</snippet12>
}
public static void IndexOf()
{
//<snippet13>
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
//</snippet13>
}
public static void LastIndexOf()
{
//<snippet14>
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
//</snippet14>
}
}
//</snippet5>sample · vbsamples/snippets/visualbasic/VS_Snippets_CLR/conceptual.string.basicops/vb/compare.vb11
'<snippet5>
Class Example
Public Shared Sub Main()
Compare()
CompareOrdinal()
CompareTo()
Equals1()
Equals2()
StartsWith()
EndsWith()
IndexOf()
LastIndexOf()
End Sub
Public Shared Sub Compare()
'<snippet6>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
'</snippet6>
End Sub
Public Shared Sub CompareOrdinal()
'<snippet7>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
'</snippet7>
End Sub
Public Shared Sub CompareTo()
'<snippet8>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
'</snippet8>
End Sub
Public Shared Sub Equals1()
'<snippet9>
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
'</snippet9>
End Sub
Public Shared Sub Equals2()
'<snippet10>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
'</snippet10>
End Sub
Public Shared Sub StartsWith()
'<snippet11>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
'</snippet11>
End Sub
Public Shared Sub EndsWith()
'<snippet12>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
'</snippet12>
End Sub
Public Shared Sub IndexOf()
'<snippet13>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
'</snippet13>
End Sub
Public Shared Sub LastIndexOf()
'<snippet14>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
'</snippet14>
End Sub
End Class
'</snippet5> This example displays True to the console.
The System.String.EndsWith method compares a passed string to the characters that exist at the end of the current string object. It also returns a Boolean value. The following example checks the end of a string using the EndsWith method.
sample · csharpsamples/snippets/csharp/VS_Snippets_CLR/conceptual.string.basicops/cs/compare.cs12
//<snippet5>
using System;
class Example
{
public static void Main()
{
Compare();
CompareOrdinal();
Console.Write("CompareTo: ");
CompareTo();
Console.Write("Equals: ");
Equals1();
Equals2();
StartsWith();
EndsWith();
IndexOf();
LastIndexOf();
}
public static void Compare()
{
//<snippet6>
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
//</snippet6>
}
public static void CompareOrdinal()
{
//<snippet7>
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
//</snippet7>
}
public static void CompareTo()
{
//<snippet8>
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
//</snippet8>
}
public static void Equals1()
{
//<snippet9>
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
//</snippet9>
}
public static void Equals2()
{
//<snippet10>
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
//</snippet10>
}
public static void StartsWith()
{
//<snippet11>
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
//</snippet11>
}
public static void EndsWith()
{
//<snippet12>
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
//</snippet12>
}
public static void IndexOf()
{
//<snippet13>
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
//</snippet13>
}
public static void LastIndexOf()
{
//<snippet14>
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
//</snippet14>
}
}
//</snippet5>sample · vbsamples/snippets/visualbasic/VS_Snippets_CLR/conceptual.string.basicops/vb/compare.vb12
'<snippet5>
Class Example
Public Shared Sub Main()
Compare()
CompareOrdinal()
CompareTo()
Equals1()
Equals2()
StartsWith()
EndsWith()
IndexOf()
LastIndexOf()
End Sub
Public Shared Sub Compare()
'<snippet6>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
'</snippet6>
End Sub
Public Shared Sub CompareOrdinal()
'<snippet7>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
'</snippet7>
End Sub
Public Shared Sub CompareTo()
'<snippet8>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
'</snippet8>
End Sub
Public Shared Sub Equals1()
'<snippet9>
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
'</snippet9>
End Sub
Public Shared Sub Equals2()
'<snippet10>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
'</snippet10>
End Sub
Public Shared Sub StartsWith()
'<snippet11>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
'</snippet11>
End Sub
Public Shared Sub EndsWith()
'<snippet12>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
'</snippet12>
End Sub
Public Shared Sub IndexOf()
'<snippet13>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
'</snippet13>
End Sub
Public Shared Sub LastIndexOf()
'<snippet14>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
'</snippet14>
End Sub
End Class
'</snippet5> This example displays False to the console.
IndexOf and LastIndexOf methods
You can use the System.String.IndexOf method to determine the position of the first occurrence of a particular character within a string. This case-sensitive method starts counting from the beginning of a string and returns the position of a passed character using a zero-based index. If the character cannot be found, a value of –1 is returned.
The following example uses the IndexOf method to search for the first occurrence of the 'l' character in a string.
sample · csharpsamples/snippets/csharp/VS_Snippets_CLR/conceptual.string.basicops/cs/compare.cs13
//<snippet5>
using System;
class Example
{
public static void Main()
{
Compare();
CompareOrdinal();
Console.Write("CompareTo: ");
CompareTo();
Console.Write("Equals: ");
Equals1();
Equals2();
StartsWith();
EndsWith();
IndexOf();
LastIndexOf();
}
public static void Compare()
{
//<snippet6>
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
//</snippet6>
}
public static void CompareOrdinal()
{
//<snippet7>
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
//</snippet7>
}
public static void CompareTo()
{
//<snippet8>
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
//</snippet8>
}
public static void Equals1()
{
//<snippet9>
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
//</snippet9>
}
public static void Equals2()
{
//<snippet10>
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
//</snippet10>
}
public static void StartsWith()
{
//<snippet11>
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
//</snippet11>
}
public static void EndsWith()
{
//<snippet12>
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
//</snippet12>
}
public static void IndexOf()
{
//<snippet13>
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
//</snippet13>
}
public static void LastIndexOf()
{
//<snippet14>
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
//</snippet14>
}
}
//</snippet5>sample · vbsamples/snippets/visualbasic/VS_Snippets_CLR/conceptual.string.basicops/vb/compare.vb13
'<snippet5>
Class Example
Public Shared Sub Main()
Compare()
CompareOrdinal()
CompareTo()
Equals1()
Equals2()
StartsWith()
EndsWith()
IndexOf()
LastIndexOf()
End Sub
Public Shared Sub Compare()
'<snippet6>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
'</snippet6>
End Sub
Public Shared Sub CompareOrdinal()
'<snippet7>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
'</snippet7>
End Sub
Public Shared Sub CompareTo()
'<snippet8>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
'</snippet8>
End Sub
Public Shared Sub Equals1()
'<snippet9>
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
'</snippet9>
End Sub
Public Shared Sub Equals2()
'<snippet10>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
'</snippet10>
End Sub
Public Shared Sub StartsWith()
'<snippet11>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
'</snippet11>
End Sub
Public Shared Sub EndsWith()
'<snippet12>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
'</snippet12>
End Sub
Public Shared Sub IndexOf()
'<snippet13>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
'</snippet13>
End Sub
Public Shared Sub LastIndexOf()
'<snippet14>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
'</snippet14>
End Sub
End Class
'</snippet5> This example displays 2 to the console.
The System.String.LastIndexOf method is similar to the String.IndexOf method except that it returns the position of the last occurrence of a particular character within a string. It is case-sensitive and uses a zero-based index.
The following example uses the LastIndexOf method to search for the last occurrence of the 'l' character in a string.
sample · csharpsamples/snippets/csharp/VS_Snippets_CLR/conceptual.string.basicops/cs/compare.cs14
//<snippet5>
using System;
class Example
{
public static void Main()
{
Compare();
CompareOrdinal();
Console.Write("CompareTo: ");
CompareTo();
Console.Write("Equals: ");
Equals1();
Equals2();
StartsWith();
EndsWith();
IndexOf();
LastIndexOf();
}
public static void Compare()
{
//<snippet6>
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
//</snippet6>
}
public static void CompareOrdinal()
{
//<snippet7>
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
//</snippet7>
}
public static void CompareTo()
{
//<snippet8>
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
//</snippet8>
}
public static void Equals1()
{
//<snippet9>
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
//</snippet9>
}
public static void Equals2()
{
//<snippet10>
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
//</snippet10>
}
public static void StartsWith()
{
//<snippet11>
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
//</snippet11>
}
public static void EndsWith()
{
//<snippet12>
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
//</snippet12>
}
public static void IndexOf()
{
//<snippet13>
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
//</snippet13>
}
public static void LastIndexOf()
{
//<snippet14>
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
//</snippet14>
}
}
//</snippet5>sample · vbsamples/snippets/visualbasic/VS_Snippets_CLR/conceptual.string.basicops/vb/compare.vb14
'<snippet5>
Class Example
Public Shared Sub Main()
Compare()
CompareOrdinal()
CompareTo()
Equals1()
Equals2()
StartsWith()
EndsWith()
IndexOf()
LastIndexOf()
End Sub
Public Shared Sub Compare()
'<snippet6>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
'</snippet6>
End Sub
Public Shared Sub CompareOrdinal()
'<snippet7>
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
'</snippet7>
End Sub
Public Shared Sub CompareTo()
'<snippet8>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
'</snippet8>
End Sub
Public Shared Sub Equals1()
'<snippet9>
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
'</snippet9>
End Sub
Public Shared Sub Equals2()
'<snippet10>
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
'</snippet10>
End Sub
Public Shared Sub StartsWith()
'<snippet11>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
'</snippet11>
End Sub
Public Shared Sub EndsWith()
'<snippet12>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
'</snippet12>
End Sub
Public Shared Sub IndexOf()
'<snippet13>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
'</snippet13>
End Sub
Public Shared Sub LastIndexOf()
'<snippet14>
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
'</snippet14>
End Sub
End Class
'</snippet5> This example displays 9 to the console.
Both methods are useful when used in conjunction with the System.String.Remove method. You can use either the IndexOf or LastIndexOf methods to retrieve the position of a character, and then supply that position to the Remove method in order to remove a character or a word that begins with that character.
See also
- Best practices for using strings in .NET
- Perform culture-insensitive string operations
- Sorting weight tables - used by .NET Framework and .NET Core 1.0-3.1 on Windows
- Default Unicode collation element table - used by .NET 5 on all platforms, and by .NET Core on Linux and macOS