Two of the most commonly confused String methods on the AP exam. equals() answers a yes/no question. compareTo() answers a “who comes first?” question. Knowing which to use — and what they return — is tested every year.
⚠ Exam Trap: Using == to compare Strings compares memory addresses, not content. It may return false even when two Strings have identical characters. Always use .equals() or .compareTo().
equals() — True or False
equals() returns a boolean: true if the two Strings have identical characters, false otherwise. Case matters.
String a = "hello";
String b = "hello";
String c = "Hello";
System.out.println(a.equals(b)); // true
System.out.println(a.equals(c)); // false (case-sensitive)
System.out.println(a == b); // true in this case (string pool)
// but NOT reliable -- never use ==
Use equalsIgnoreCase() when case should not matter:
compareTo() returns an integer, not a boolean. The sign tells you the relationship:
Return value
Meaning
Negative
Calling string comes before the argument alphabetically
Zero
Strings are equal
Positive
Calling string comes after the argument alphabetically
String x = "apple";
String y = "banana";
int result = x.compareTo(y);
System.out.println(result); // negative (apple comes before banana)
if (x.compareTo(y) < 0) {
System.out.println(x + " comes first");
}
How compareTo() works: It compares Unicode values character by character. If the first characters differ, it returns their Unicode difference. Uppercase letters have smaller Unicode values than lowercase (‘A’ = 65, ‘a’ = 97).
When to Use Which
Use case
Method
Check if two Strings are the same
.equals()
Check same, ignoring case
.equalsIgnoreCase()
Sort alphabetically / check order
.compareTo()
Compare two Strings for identity
Never==
📝 Practice Question 1
What is the output of the following code?
String p = "Cat";
String q = "cat";
System.out.println(p.compareTo(q));
📝 Practice Question 2
Which of the following CORRECTLY checks whether String word equals "Java"?
I. if (word == "Java") II. if (word.equals("Java")) III. if (word.compareTo("Java") == 0)
✅ Exam Tip: On the AP exam, compareTo() questions almost always ask about the sign of the return value, not the exact number. Focus on: negative = comes first, zero = equal, positive = comes after.
Whether you're a student, parent, or teacher — I'd love to hear from you.
Just want free AP CS resources?
Enter your email below and check the subscribe box — no message needed.
Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.
Typically responds within 24 hours
✓
Message Sent!
Thanks for reaching out. I'll get back to you within 24 hours.