What is StringUtils.containsOnly in Java?
containsOnly() is a
StringUtils class that is used to check whether a given string contains only valid characters.
The characters in the string can be repeated any number of times, but they have to be a subset of the defined valid characters.
For example:
valid characters = "abc" string = "ababaaaabbbcccac"
Since the string contains only valid characters, containsOnly would return true.
valid characters = "abc" string = "ababadefaabbbcccac"
Since the string contains characters that are not valid, containsOnly would return false.
Adding the apache commons lang package
StringUtils is defined in the Apache Commons Lang package. Apache Commons Lang can be added to the Maven project by adding the following dependency to the pom.xml file.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
For other versions of the commons-lang package, refer to the Maven Repository.
Importing StringUtils
You can import the StringUtils class as follows.
import org.apache.commons.lang3.StringUtils;
Syntax
public static boolean containsOnly(final CharSequence cs, final char... valid)
Parameters
-
final CharSequence cs: the character sequence to check for valid characters. -
final char... valid: an array of valid characters.
Return value
The function returns true if the character sequence only contains passed valid characters and is not null. Otherwise, it returns false.
Overloaded method
public static boolean containsOnly(final CharSequence cs, final String validChars)
Parameters
final String validChars: a string of valid characters.
Return value
The function returns true if the character sequence only contains passed valid characters and is not null. Otherwise, it returns false.
Code
In the code below, we define an array of valid characters and a sequence of characters.
import org.apache.commons.lang3.StringUtils;public class Main{public static void main(String[] args){String characterSequence = "abbbcccaaaccb";char[] validChars = "abc".toCharArray();System.out.println(StringUtils.containsOnly(characterSequence, validChars));characterSequence = "abcdef";System.out.println(StringUtils.containsOnly(characterSequence, validChars));}}
Output
The output of the code will be as follows.
true
false
Explanation
This is because the first sequence of characters contains only valid characters, and the second sequence of characters contains extra characters that are not defined in the array of valid characters.