Algorithm for joining e.g. an array of strings

后端 未结 16 1876
陌清茗
陌清茗 2021-01-01 21:40

I have wondered for some time, what a nice, clean solution for joining an array of strings might look like. Example: I have [\"Alpha\", \"Beta\", \"Gamma\"] and want to join

16条回答
  •  别那么骄傲
    2021-01-01 21:56

    In Java 5, with unit test:

    import junit.framework.Assert;
    import org.junit.Test;
    
    public class StringUtil
    {
        public static String join(String delim, String... strings)
        {
            StringBuilder builder = new StringBuilder();
    
            if (strings != null)
            {
                for (String str : strings)
                {
                    if (builder.length() > 0)
                    {
                        builder.append(delim);
                    }
    
                    builder.append(str);
                }
            }           
    
            return builder.toString();
        }
    
        @Test
        public void joinTest()
        {
            Assert.assertEquals("", StringUtil.join(", ", null));
            Assert.assertEquals("", StringUtil.join(", ", ""));
            Assert.assertEquals("", StringUtil.join(", ", new String[0]));
            Assert.assertEquals("test", StringUtil.join(", ", "test"));
            Assert.assertEquals("foo, bar", StringUtil.join(", ", "foo", "bar"));
            Assert.assertEquals("foo, bar, baz", StringUtil.join(", ", "foo", "bar", "baz"));
        }
    }
    

提交回复
热议问题