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

pkarwasz pushed a commit to branch fix/backport-log4j3-api
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 5bd7a760f41c2878f3628fca937187c99a5d18ce
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Fri Mar 15 14:28:49 2024 +0100

    Add `Strings#trimToOptional`
---
 .../main/java/org/apache/logging/log4j/util/Strings.java   | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java
index bee54324f4..8eea0e782c 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java
@@ -21,6 +21,7 @@ import static 
org.apache.logging.log4j.util.StringBuilders.trimToMaxSize;
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.Objects;
+import java.util.Optional;
 
 /**
  * <em>Consider this class private.</em>
@@ -288,6 +289,19 @@ public final class Strings {
         return isEmpty(ts) ? null : ts;
     }
 
+    /**
+     * Removes control characters from both ends of this String returning 
{@code Optional.empty()} if the String is
+     * empty ("") after the trim or if it is {@code null}.
+     * @param str The String to trim.
+     * @return An Optional containing the String.
+     *
+     * @see #trimToNull(String)
+     * @since 2.24.0
+     */
+    public static Optional<String> trimToOptional(final String str) {
+        return Optional.ofNullable(str).map(String::trim).filter(s -> 
!s.isEmpty());
+    }
+
     private Strings() {
         // empty
     }

Reply via email to