Java String contains()

Filed Under: Java

Java String contains() method is used to check if the string contains specified character sequence or not.

Java String contains()

java string contains

  • Java String contains() method was introduced in java 1.5 release as a utility method.
  • This method returns true if the string contains the specified sequence of char values. Else it returns false.
  • String contains() method internally uses String indexOf method, below code snippet shows the contains() method definition.
    
    public boolean contains(CharSequence s) {
        return indexOf(s.toString()) >= 0;
    }
    
  • If the argument is null, then NullPointerException is thrown, it’s clear from the above code that there is no null check for the argument string. For example; "abc".contains(null); will throw below exception stack trace similar to below.
    
    Exception in thread "main" java.lang.NullPointerException
    	at java.base/java.lang.String.contains(String.java:2047)
    	at com.journaldev.string.JavaStringContains.main(JavaStringContains.java:17)
    
  • Note that string contains() method is case sensitive, so "abc".contains("A"); will return false.
  • The argument of String contains() method is java.lang.CharSequence, so any implementation classes are also fine as argument, such as StringBuffer, StringBuilder and CharBuffer.

Java String contains() method simple example

Let’s look at a simple java string contains method example.


package com.journaldev.string;

/**
 * Java String contains example
 * @author pankaj
 *
 */
public class JavaStringContains {

	public static void main(String[] args) {
		String str = "abc def";
		String str1 = "//ab/\\";
		
		System.out.println(str.contains("a")); //true
		System.out.println(str.contains("\\")); //false
		
		System.out.println(str1.contains("\\")); //true
		System.out.println(str1.contains("/")); //true
		
		boolean flag = "abc".contains("A"); //false
	}

}

The output of the above program statements are shown in the comments itself and self understood.

Java String contains() with case insensitive check

For case insensitive check, we can change both the strings to either upper case or lower case before calling the contents() method.


"abc".toLowerCase().contains("A".toLowerCase()); //true

"abc".toUpperCase().contains("A".toUpperCase()); //true

Java String contains() with CharSequence

java charsequence implemetations
Let’s look at examples of using String contains() method with StringBuffer, StringBuilder and CharBuffer. All these are implementations of CharSequence interface. Also note that CharBuffer is an abstract class, creating it’s instance is slightly different from other usual classes.


//Java String contains with StringBuffer
StringBuffer sb = new StringBuffer("User");
System.out.println(str.contains(sb)); //true

//Java String contains with StringBuilder
StringBuilder sb1 = new StringBuilder(sb);
System.out.println(str.contains(sb1)); //true

//Java String contains with CharBuffer
CharBuffer cb = CharBuffer.allocate(4);
cb.append('U');cb.append('s');cb.append('e');cb.append('r');
cb.clear();
System.out.println(cb); //User
System.out.println(str.contains(cb)); //true

That’s all for java string contains method examples. If you are learning java, I would strongly recommend to go through core java tutorial.

Reference: API Doc

Comments

  1. Jorge Flores says:

    I think it would be easier to use StringUtils.containsIgnoreCase(…);

Leave a Reply

Your email address will not be published. Required fields are marked *

close
Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages