How To Compare Two Strings In Java? (With '==' Operator and equals() Method)


A quick guide to compare two strings in java using '==' operator and equals() method. '==' is to compare the references and equals() method to compare values.

1. Introduction

In this tutorial, We'll learn how to compare two strings in java. Most of the developers use double equal operator "==" to compare two strings. My friend used "==" many times in his project but later faced an issue in production. Then he changed to String.equals() method.

Let us see what is the difference between "==" and equals() method in Strings Comparision.

2. Comparison with "==" Operator

Is this bad to use "==" operator for strings comparison. When this should be used?

Take a look at the following example program that uses "==" operator.

package com.java.w3schools.blog.java.program.to.strings;

public class StringsCompareDoubleEqualOperator {

 public static void main(String[] args) {

  String s1 = "java";
  String s2 = "java";

  String s3 = new String("java");
  String s4 = new String("java");

  System.out.println("(s1 == s2) : " + (s1 == s2));
  System.out.println("(s1 == s3) : " + (s1 == s3));
  System.out.println("(s2 == s3) : " + (s2 == s3));
  System.out.println("(s3 == s4) : " + (s3 == s4));

  String s5 = "javaprogramto.com";
  String s6 = "java" + "programto.com";

  System.out.println("(s5 == s6) : " + (s5 == s6));

  String s7 = s2 + "programto.com";

  System.out.println("(s5 == s7) : " + (s5 == s7));

  String s8 = new String(s7);
  System.out.println("(s7 == s8) : " + (s7 == s8));

  String s9 = s1;
  System.out.println("(s9 == s1) : " + (s9 == s1));

  String s10 = s8;
  System.out.println("(s10 == s8) : " + (s10 == s8));



(s1 == s2) : true
(s1 == s3) : false
(s2 == s3) : false
(s3 == s4) : false
(s5 == s6) : true
(s5 == s7) : false
(s7 == s8) : false
(s9 == s1) : true
(s10 == s8) : true

"==" is used to reference equality (whether they are the same object). It compares only memory addresses of the two references but not the content. Check the output why false and true are returned by "==". If any two objects are pointing to the same memory address, it returns true otherwise false is returned.

3. Comparison with String equals() Method

String class has equals(Object anObject) method that takes Object as an argument. That means this method can take any type of object. This method is used to compare the contents of strings and will not compare the references. equals(Object o) is present as part of Object class and it compares the references. But, equals() is overridden in String class to compare the contents.

The below example has lots of comparisons all most returns true in many cases.

package com.java.w3schools.blog.java.program.to.strings;

public class StringsCompareEqualsMethod {

 public static void main(String[] args) {

  String s1 = "java";
  String s2 = "java";

  String s3 = new String("java");
  String s4 = new String("java");

  System.out.println("s1.equals(s2) : " + s1.equals(s2));
  System.out.println("s1.equals(s3) : " + s1.equals(s3));
  System.out.println("s2.equals(s3) : " + s2.equals(s3));
  System.out.println("s3.equals(s4) : " + s3.equals(s4));

  String s5 = "javaprogramto.com";
  String s6 = "java" + "programto.com";

  System.out.println("s5.equals(s6) : " + s5.equals(s6));

  String s7 = s2 + "programto.com";

  System.out.println("s5.equals(s7) : " + s5.equals(s7));

  String s8 = new String(s7);
  System.out.println("s7.equals(s8) : " + s7.equals(s8));

  String s9 = s1;
  System.out.println("s9.equals(s1) : " + s9.equals(s1));

  String s10 = s8;
  System.out.println("s10.equals(s8) : " + s10.equals(s8));

  String s11 = "Java";
  System.out.println("s1.equals(s11) : " + s1.equals(s11));

  String s12 = new String("javaprogramto.com");
  System.out.println("s5.equals(s12) : " + s5.equals(s12));

  String s13 = new String("JavaProgramTo.com");
  System.out.println("s13.equals(s12) : " + s13.equals(s12));



s1.equals(s2) : true
s1.equals(s3) : true
s2.equals(s3) : true
s3.equals(s4) : true
s5.equals(s6) : true
s5.equals(s7) : true
s7.equals(s8) : true
s9.equals(s1) : true
s10.equals(s8) : true
s1.equals(s11) : false
s5.equals(s12) : true
s13.equals(s12) : false

If the contents of two strings are the same then it returns true. If not the same then it returns false.

If we pass other than String to equals() method then it returns false.

s1.equals(new StringBuffer("java"));

Even though the contents of s2 and StringBuffer are the same, it returns false because passed object is not a type of String. The given object is a type of String or not, this is done with "anObject instanceof String" condition.

If the contents are the same but it has an upper case or lower case, to ignore the case need to use equalsIgnoreCase(String anotherString) method from the String class.

s13.equals(s12) statement returned false earilier but if you change as s13.equalsIgnoreCase(s12) then returns true because equalsIgnoreCase() method ignores the case sensitives characters.

4. Conclusion

In this article, We've seen how to compare two strings and what is the differences between "==" VS equals() method.

"==" is to check reference equality
String "equals()" to compare two strings contents with case sensitive
String equalsIgnoreCase() to compare two string ignoring case types.

String contentEquals() method examples

GitHub Code 1

GitHub Code 2

Reference API Ref



About Us

Author: Venkatesh - I love to learn and share the technical stuff.

accumulo,1,ActiveMQ,2,Adsense,1,API,31,ArrayList,16,Arrays,2,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,4,Collections,20,Collector,1,Command Line,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,5,Core Java,72,Corona India,1,Create,2,CSS,1,Date,2,Date Time API,3,Dictionary,1,Difference,1,Download,1,Eclipse,2,Efficiently,1,Error,1,Errors,1,Exception,1,Exceptions,2,Fast,1,Files,9,Float,1,Font,1,For examples,1,For loop examples,1,For Loop in Java,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,4,Grant,1,Grep,1,HashMap,1,HTML,2,HttpClient,2,Immutable,1,Inner for loops,1,Installation,1,Interview Questions,5,Iterate,2,Jackson API,3,Java,28,Java 10,1,Java 11,5,Java 12,5,Java 13,2,Java 14,2,java 5 For loop,1,Java 8,47,Java 9,1,Java Design Patterns,1,Java Files,1,Java for loop,1,Java Program,2,Java Programs,65,java.lang,5,java.util. function,1,jQuery,1,Kotlin,10,Kotlin Programs,6,Lambda,1,lang,29,Leap Year,1,live updates,1,Math,1,Maven,1,Method References,1,Mockito,1,MongoDB,3,Nested for loop,1,Nested for loop examples,1,New Features,1,Operations,1,Optional,4,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,1,Softwares,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Stream,2,Streams,11,String,48,String Programs,8,String Revese,1,Swing,1,System,1,Tags,1,Threads,8,Tomcat,1,Tomcat 8,1,Troubleshoot,16,Unix,2,Updates,3,util,5,While Loop,1,
JavaProgramTo.com: How To Compare Two Strings In Java? (With '==' Operator and equals() Method)
How To Compare Two Strings In Java? (With '==' Operator and equals() Method)
A quick guide to compare two strings in java using '==' operator and equals() method. '==' is to compare the references and equals() method to compare values.
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content