Java | Strings | .compareTo() | Codecademy

The .compareTo() method compares two strings lexicographically based on the Unicode value of each character in the string.

Syntax

stringA.compareTo(stringB);

Both stringA and stringB are required in order for the .compareTo() method to work properly.

A value of 0 will be returned if the strings are equal. Otherwise, the following will happen:

  • A number less than 0 is returned if stringA is lexicographically less than stringB.
  • A number greater than 0 is returned if stringA is lexicographically more than stringB.

A way to think about this lexicographical evaluation is noting the Unicode values for the following character sets:

Character Set
Range
Example

19
49 – 57
"7".compareTo("3"); -> 55 – 51 = 4

AZ
65 – 90
"A".compareTo("B"); -> 65 – 66 = -1

az
97 – 122
"z".compareTo("w"); -> 122 – 119 = 3

Note: This method is case-sensitive. The .compareToIgnoreCase() can be used to ignore upper and lower case differences. Alternatively, the .equals() method can used to compare strings without taking Unicode values into account.

Example 1

Compare "Codecademy" to "Codecademy":

class

CompareStringsLexicographically

{

public

static

void

main

(

String

[

]

args

)

{

String

word1

=

"Codecademy"

;

String

word2

=

"Codecademy"

;

System

.

out

.

println

(

word1

.

compareTo

(

word2

)

)

;

}

}

Example 2

Compare "Codecademy" to "codecademy":

class

CompareStringsLexicographically

{

public

static

void

main

(

String

[

]

args

)

{

String

word1

=

"Codecademy"

;

String

word2

=

"codecademy"

;

System

.

out

.

println

(

word1

.

compareTo

(

word2

)

)

;

}

}

Example 3

Compare "codecademy" to "Codecademy":

class

CompareLexicographically

{

public

static

void

main

(

String

[

]

args

)

{

String

word1

=

"codecademy"

;

String

word2

=

"Codecademy"

;

System

.

out

.

println

(

word1

.

compareTo

(

word2

)

)

;

}

}