From 38ce857870de7ee99f1b9a1e730dc7cdd8662909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Kohlschu=CC=88tter?= Date: Sun, 31 Dec 2023 13:47:17 +0100 Subject: [PATCH] common: Add #contains --- .../com/kohlschutter/stringhold/StringHolder.java | 14 ++++++++++++-- .../kohlschutter/stringhold/StringHolderTest.java | 6 ++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/stringhold-common/src/main/java/com/kohlschutter/stringhold/StringHolder.java b/stringhold-common/src/main/java/com/kohlschutter/stringhold/StringHolder.java index 6cd9b18..587f39e 100644 --- a/stringhold-common/src/main/java/com/kohlschutter/stringhold/StringHolder.java +++ b/stringhold-common/src/main/java/com/kohlschutter/stringhold/StringHolder.java @@ -742,8 +742,18 @@ default int indexOf(int c) { } /** - * Returns the index within this StringHolder of the first occurrence of the specified - * CharSequence, or {@code -1} if not found. + * Checks if this {@link StringHolder} contains the given {@link CharSequence}. + * + * @param s The char sequence to look for. + * @return {@code true} if found (also if the sequence is empty). + */ + default boolean contains(CharSequence s) { + return indexOf(s.toString()) >= 0; + } + + /** + * Returns the index within this {@link StringHolder} of the first occurrence of the specified + * {@link CharSequence}, or {@code -1} if not found. * * @param str The char sequence to look for. * @return The position, or {@code -1} if not found. diff --git a/stringhold-common/src/test/java/com/kohlschutter/stringhold/StringHolderTest.java b/stringhold-common/src/test/java/com/kohlschutter/stringhold/StringHolderTest.java index 1e5c8ba..dab9eb8 100644 --- a/stringhold-common/src/test/java/com/kohlschutter/stringhold/StringHolderTest.java +++ b/stringhold-common/src/test/java/com/kohlschutter/stringhold/StringHolderTest.java @@ -1423,4 +1423,10 @@ public void testIndexOfSelf() throws Exception { sh = StringHolder.withSupplier(() -> ""); assertEquals(0, sh.indexOf(sh)); } + + @Test + public void testContains() throws Exception { + assertTrue(StringHolder.withContent("Foo bar").contains("bar")); + assertFalse(StringHolder.withContent("Foo bar").contains("baz")); + } }