This is an automated email from the ASF dual-hosted git repository.

afs pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit 46ae1e887368398339bb36a66c3b86781e484ab4
Author: Andy Seaborne <[email protected]>
AuthorDate: Tue May 26 15:48:39 2026 +0100

    Add StrUtils.containsIgnoreCase
---
 .../src/main/java/org/apache/jena/atlas/lib/StrUtils.java   | 13 +++++++++++++
 .../test/java/org/apache/jena/atlas/lib/TestStrUtils.java   | 10 ++++++++++
 2 files changed, 23 insertions(+)

diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java 
b/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
index 71d2a1458d..f7706bf152 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/StrUtils.java
@@ -119,6 +119,19 @@ public class StrUtils //extends StringUtils
         return str1.contains(str2) ;
     }
 
+    /**
+     * Does one string, str1, contain another string, str2, ignoring the case 
of letters?
+     *
+     * @param str1
+     * @param str2
+     * @return true if str1 contains str2, ignoring the case of letters
+     */
+    public static boolean containsIgnoreCase(String str1, String str2) {
+        str1 = Lib.uppercase(str1);
+        str2 = Lib.uppercase(str2);
+        return str1.contains(str2);
+    }
+
     public final static String replace(String string, String target, String 
replacement) {
         return string.replace(target, replacement) ;
     }
diff --git 
a/jena-base/src/test/java/org/apache/jena/atlas/lib/TestStrUtils.java 
b/jena-base/src/test/java/org/apache/jena/atlas/lib/TestStrUtils.java
index 97d3d21c52..89c237884a 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/lib/TestStrUtils.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/lib/TestStrUtils.java
@@ -88,6 +88,16 @@ public class TestStrUtils
         assertEquals(expectedLastChar, lastChar);
     }
 
+    @Test public void contains_ignorecase_1() {
+        boolean b = StrUtils.containsIgnoreCase("foobar", "FOO");
+        assertTrue(b);
+    }
+
+    @Test public void contains_ignorecase_2() {
+        boolean b = StrUtils.containsIgnoreCase("foobar", "OO");
+        assertTrue(b);
+    }
+
     @Test public void prefix_ignorecase_1() {
         boolean b = StrUtils.strStartsWithIgnoreCase("foobar", "FOO");
         assertTrue(b);

Reply via email to