# Comparing text values

## Case-insensitive comparison

All text comparison is case-insensitive by default. This means that text such as “Hello”, “HELLO”, “hello” and “hELLO” are all treated the same when you compare using the comparison operators (=, \<, \>, \<\>, \<=, \>=).

``` xojo
If "Hello" = "hello" Then
  MessageBox("They match!") ' Displayed
End If

If "Hello" <> "hello" Then
  ' Not displayed
  MessageBox("They do not match.")
End If
```

## Case-sensitive comparison

When you need to do case-sensitive text comparisons on String data, then use the `String.Compare<string.compare>` function to test the text values. Compare takes three parameters (other, compare and locale) and returns an Integer value indicating the result of the comparison.

The compare parameter indicates the type of comparison to do and uses the `ComparisonOptions</api/language/comparisonoptions>` enumeration. When the value CaseInsensitive is used, the comparison is done without considering the case of the letters.

When the value CaseSensitive is used, the comparison is done using the case of the letters. For example, “Hello” and “HELLO” would be different strings because they are the same other than the case. However, it does mean that text such as “hello” and “Today” may not compare exactly how you would expect. In the strictest sense, “hello” is greater than “Today” because “h” has a higher character code than “T”. But with CaseSensitive, that detail is not used because the two strings are not the same.

Here are some examples:

``` xojo
Var source As String = "Hello"

If source.Compare("hello", ComparisonOptions.CaseInsensitive) = 0 Then
  MessageBox("They match!")
End If

If source.Compare("hello", ComparisonOptions.CaseSensitive) <> 0 Then
  MessageBox("They do not match.")
End If
```

<div id="/topics/text_handling/comparing_text_values/see_also">

<div class="seealso">

`String</api/data_types/string>` data type; `String.Compare<string.compare>` function

</div>

</div>
