2.8. Comparing a String to the Beginning or End of a Second String
Problem
You need to determine whether a string is at the head or tail of a second string. In addition, the case sensitivity of the search needs to be controlled.
Solution
Use the EndsWith
or
StartsWith
instance methods on a
string
object. Comparisons with
EndsWith
and StartsWith
are
always case-sensitive. The following code compares the value in the
string variable head
to the beginning of the
string Test
:
string head = "str"; string test = "strVarName"; bool isFound = test.StartsWith(head);
The following example compares the value in the string variable
Tail
to the end of the string
test
:
string tail = "Name"; string test = "strVarName"; bool isFound = test.EndsWith(tail);
In both examples, the isFound
Boolean variable is
set to true
, since each string is found in
test
.
To do
a case-insensitive comparison, employ the static
string.Compare
method. The following two examples
modify the previous two examples by performing a case-insensitive
comparison. The first is equivalent to a case-insensitive
StartsWith
string search:
string head = "str"; string test = "strVarName"; int isFound = string.Compare(head, 0, test, 0, head.Length, true);
The second is equivalent to a case-insensitive
EndsWith
string search:
string tail = "Name"; string test = "strVarName"; int isFound = string.Compare(tail, 0, test, (test.Length - tail.Length), tail.Length, true);
Discussion
Use the BeginsWith
or EndsWith
instance methods to do a case-sensitive ...
Get C# Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.