What is StringUtils.indexOfIgnoreCase in Java?
Overview
indexOfIgnoreCase() is a StringUtils used to find the index of the first occurrence of the search sequence in the given text. The matching of the search sequence in the given text is case-insensitive.
The method returns the -1 value for the following use cases:
- If either the given text or the search sequence is
null. - If the search sequence is not present in the text.
The method returns the 0 value for the following use cases:
- If the search sequence is an empty string.
The method returns a positive value for the following use cases:
- If the search sequence is present in the given text.
The method optionally takes a parameter called startPos that specifies the starting index for matching of search sequence. A negative startPos is considered zero.
Refer What is StringUtils.indexOf in Java? for case-sensitive matching.
How to import StringUtils
The definition of StringUtils can be found in the Apache Commons Lang package. We can import it 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.
You can import the StringUtils class as follows:
import org.apache.commons.lang3.StringUtils;
Syntax
public static int indexOfIgnoreCase(final CharSequence seq, final CharSequence searchSeq)
public static int indexOfIgnoreCase(final CharSequence seq, final CharSequence searchSeq, final int startPos)
Parameters
seq: We use this to search the text.searchSeq: Use this to search the sequence.startPos: The starting index of the search operation.
Return value
This method returns an integer value.
Code
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>Explanation
The maven dependency for StringUtils is included in the pom.xml file: Main.java
- Line 1: We import the
StringUtilsclass. - Lines 5–8: We define a
searchmethod. It helps search for thesearchStringin the giventextby invoking theindexOfIgnoreCasemethod. - Lines 10–13: We define a method called
searchWithPos. It helps search for thesearchStringin the giventext. The starting index will bestartPosby calling on theindexOfIgnoreCasemethod. - Lines 16-22: We call on the
searchmethod for differenttextvalues andsearchString. - Lines 24-32: We invoke the
searchWithPosmethod for differenttextvalues,searchStringandstartPos.
Observations
Two observations to be made in the output:
- The comparison is case-insensitive.
- Only the index of the first occurrence of the
searchStringis returned.