From f4c8f535f7679e04e4c1069587c77ab7b8e9dc03 Mon Sep 17 00:00:00 2001 From: pizihao <2335715300@qq.com> Date: Sun, 9 Oct 2022 15:37:24 +0800 Subject: [PATCH] feat : supplement StringUtil --- .../cn/hippo4j/common/toolkit/StringUtil.java | 50 +++++++++++++++++ .../common/toolkit/StringUtilTest.java | 53 ++++++++++++++----- 2 files changed, 89 insertions(+), 14 deletions(-) diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java index 553d2acb..e81c1999 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java @@ -223,6 +223,56 @@ public class StringUtil { return sb.toString(); } + /** + * combination CharSequence, get a String + * + * @param charSequences CharSequence, if null or empty, get {@link StringUtil#EMPTY} + * @return String + */ + public static String newBuilder(CharSequence... charSequences) { + if (charSequences == null || charSequences.length == 0) { + return StringUtil.EMPTY; + } + return createBuilder(charSequences).toString(); + } + + /** + * combination CharSequence, get a StringBuilder + * + * @param charSequences CharSequence + * @return StringBuilder + */ + public static StringBuilder createBuilder(CharSequence... charSequences) { + StringBuilder builder = new StringBuilder(); + if (charSequences == null || charSequences.length == 0) { + return builder; + } + for (CharSequence sequence : charSequences) { + builder.append(sequence); + } + return builder; + } + + /** + * combination CharSequence, to StringBuilder + * + * @param builder StringBuilder, if null create a new + * @param charSequences CharSequence + * @return StringBuilder + */ + public static StringBuilder appends(StringBuilder builder, CharSequence... charSequences) { + if (builder == null) { + return createBuilder(charSequences); + } + if (charSequences == null || charSequences.length == 0) { + return builder; + } + for (CharSequence sequence : charSequences) { + builder.append(sequence); + } + return builder; + } + /** * Replace a portion of the string, replacing all found * diff --git a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java index d2f9173c..9d9c1f02 100644 --- a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java +++ b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/StringUtilTest.java @@ -18,83 +18,108 @@ package cn.hippo4j.common.toolkit; import org.junit.Test; - -import java.util.Objects; +import org.junit.Assert; public class StringUtilTest { @Test public void assertIsEmpty() { String string = ""; - Assert.isTrue(StringUtil.isEmpty(string)); + Assert.assertTrue(StringUtil.isEmpty(string)); } @Test public void assertIsNotEmpty() { String string = "string"; - Assert.isTrue(StringUtil.isNotEmpty(string)); + Assert.assertTrue(StringUtil.isNotEmpty(string)); } @Test public void emptyToNull() { String string = ""; - Assert.isNull(StringUtil.emptyToNull(string)); + Assert.assertNull(StringUtil.emptyToNull(string)); } @Test public void nullToEmpty() { String string = "null"; - Assert.notEmpty(StringUtil.nullToEmpty(string)); + Assert.assertEquals("null", StringUtil.nullToEmpty(string)); } @Test public void isNullOrEmpty() { String string = "null"; - Assert.isTrue(!StringUtil.isNullOrEmpty(string)); + Assert.assertFalse(StringUtil.isNullOrEmpty(string)); } @Test public void isBlank() { String string = ""; - Assert.isTrue(StringUtil.isBlank(string)); + Assert.assertTrue(StringUtil.isBlank(string)); } @Test public void isNotBlank() { String string = "null"; - Assert.isTrue(StringUtil.isNotBlank(string)); + Assert.assertTrue(StringUtil.isNotBlank(string)); } @Test public void isAllNotEmpty() { String strings = "str"; - Assert.isTrue(StringUtil.isAllNotEmpty(strings)); + Assert.assertTrue(StringUtil.isAllNotEmpty(strings)); } @Test public void hasEmpty() { String strings = ""; - Assert.isTrue(StringUtil.hasEmpty(strings)); + Assert.assertTrue(StringUtil.hasEmpty(strings)); } @Test public void toUnderlineCase() { String string = "str"; String s = StringUtil.toUnderlineCase(string); - Assert.isTrue(Objects.equals(s, "str")); + Assert.assertEquals("str", s); } @Test public void toSymbolCase() { String string = "str"; String s = StringUtil.toSymbolCase(string, StringUtil.UNDERLINE); - Assert.isTrue(Objects.equals(s, "str")); + Assert.assertEquals("str", s); } @Test public void toCamelCase() { String string = "str_str"; String s = StringUtil.toCamelCase(string, StringUtil.UNDERLINE); - Assert.isTrue(Objects.equals(s, "strStr")); + Assert.assertEquals("strStr", s); + } + + @Test + public void newBuilder() { + String s1 = StringUtil.newBuilder(null); + Assert.assertEquals("", s1); + String s2 = StringUtil.newBuilder("H", "ippo", "4j"); + Assert.assertEquals("Hippo4j", s2); + } + + @Test + public void createBuilder() { + StringBuilder s1 = StringUtil.createBuilder(null); + Assert.assertEquals("", s1.toString()); + StringBuilder s2 = StringUtil.createBuilder("H", "ippo", "4j"); + Assert.assertEquals("Hippo4j", s2.toString()); + } + + @Test + public void appends() { + StringBuilder sb1 = StringUtil.appends(null, "H", "ippo", "4j"); + Assert.assertEquals("Hippo4j", sb1.toString()); + StringBuilder sb2 = StringUtil.appends(StringUtil.createBuilder("To "), null); + Assert.assertEquals("To ", sb2.toString()); + StringBuilder sb3 = StringUtil.appends(StringUtil.createBuilder("To "), "H", "ippo", "4j"); + Assert.assertEquals("To Hippo4j", sb3.toString()); } }