In Java, we can use String.contains()
to check if a String contains a substring.
1. String.contains() – Case Sensitive
StringAndSubstring.java
package com.favtuts.string; public class StringAndSubstring { public static void main(String[] args) { String name = "favtuts is learning Java 123"; System.out.println(name.contains("Java")); // true System.out.println(name.contains("java")); // false System.out.println(name.contains("FAVTUTS")); // false System.out.println(name.contains("favtuts")); // true if (name.contains("Java")) { System.out.println("Hello Java"); } else { System.out.println("abc..."); } } }
Output
true
false
false
true
Hello Java
2. String.contains() – Ignoring Case
The idea is to convert all the strings and substring to lowercase before check with .contains()
StringAndSubstring.java
package com.favtuts.string; public class StringAndSubstring { public static void main(String[] args) { String name = "favtuts is learning Java 123"; System.out.println(containsIgnoreCase(name, "Java")); // true System.out.println(containsIgnoreCase(name, "java")); // true System.out.println(containsIgnoreCase(name, "FAVTUTS")); // true System.out.println(containsIgnoreCase(name, "favtuts")); // true } public static boolean containsIgnoreCase(String str, String subString) { return str.toLowerCase().contains(subString.toLowerCase()); } }
Output
true
true
true
true
3. indexOf()
3.1 Review the JDK String
source code, the contains()
uses indexOf()
to check substring internally.
String.java
package java.lang; public boolean contains(CharSequence s) { return indexOf(s.toString()) >= 0; }
3.2 So, we can also check the substring like this :
StringAndSubstring.java
package com.favtuts.string; public class StringAndSubstring { public static void main(String[] args) { String name = "favtuts is learning Java 123"; if (name.indexOf("Java") != -1) { System.out.println("Hello Java"); // print this } else { System.out.println("abc..."); } } }
Output
Hello Java
Download Source Code
$ git clone https://github.com/favtuts/java-core-tutorials-examples
$ cd java-string