Recipe 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 search for a particular
string at the beginning or end of a string. The equivalent
case-insensitive comparison requires the use of the static
Compare method in the string
class. If the return value of the Compare method
is zero, a match was found. Any other number means that a match was
not found.
See Also
See the "String.StartsWith Method,"
"String.EndsWith Method," and
"String.Compare Method" topics in
the MSDN documentation.
|