diff --git a/unix4j-core/unix4j-base/src/main/java/org/unix4j/util/StringUtil.java b/unix4j-core/unix4j-base/src/main/java/org/unix4j/util/StringUtil.java index 7758dc1a..b290668a 100644 --- a/unix4j-core/unix4j-base/src/main/java/org/unix4j/util/StringUtil.java +++ b/unix4j-core/unix4j-base/src/main/java/org/unix4j/util/StringUtil.java @@ -428,15 +428,11 @@ private static int indexOfIgnoreCase(String source, String target, final int sourceCount = source.length(); final int targetCount = target.length(); final char first = target.charAt(0); - int max = Math.min(maxIndex, sourceCount - targetCount); + final int max = Math.min(maxIndex, sourceCount - targetCount); for (int i = 0; i <= max; i++) { - final char ch = source.charAt(i); /* Look for first character. */ - if (!equalsIgnoreCase(ch, first)) { - while (++i <= max && !equalsIgnoreCase(ch, first)) - ; - } + while (!equalsIgnoreCase(source.charAt(i), first) && ++i <= max); /* Found first character, now look at the rest of v2 */ if (i <= max) { diff --git a/unix4j-core/unix4j-base/src/test/java/org/unix4j/util/StringUtilTest.java b/unix4j-core/unix4j-base/src/test/java/org/unix4j/util/StringUtilTest.java index 88cbc2c8..d390b428 100644 --- a/unix4j-core/unix4j-base/src/test/java/org/unix4j/util/StringUtilTest.java +++ b/unix4j-core/unix4j-base/src/test/java/org/unix4j/util/StringUtilTest.java @@ -122,4 +122,10 @@ public void findWhitespace() { Assert.assertEquals(expected, StringUtil.findWhitespace(s, i)); } } + @Test + public void indexOfIgnoreCase() { + String source = "abc ade"; + String target = "adE"; + Assert.assertEquals(4, StringUtil.indexOfIgnoreCase(source, target)); + } }