StringUtils { public static String join(String[] strings, String separator) { if (strings == null || strings.length == 0) { return EMPTY; } StringBuilder sb = new StringBuilder(); for (String string : strings) { if (isNotBlank(string)) { sb.append(string).append(separator); } } return sb.length() > 0 ? sb.substring(0, sb.length() - separator.length()) : StringUtils.EMPTY; }  static boolean isEmpty(CharSequence cs); static boolean isNotEmpty(CharSequence cs); static boolean isBlank(CharSequence cs); static boolean isNotBlank(CharSequence cs); static String trim(String str); static String trimToNull(String str); static String trimToEmpty(String str); static String toString(byte[] bytes, String charsetName); static String defaultString(final Object str); static String toString(Object o, String defaultVal); static String toString(Object o); static String objectsToString(Object[] args); static boolean equals(CharSequence s1, CharSequence s2); static String[] split(String src, String separator); static String[] splitWithCommaOrSemicolon(String src); static String join(String[] strings, String separator); static String joinWithComma(String... strings); static String substringAfter(String str, String separator); static String substringBefore(String str, String separator); static final String EMPTY; static final String CONTEXT_SEP; static final String ALL; static final String DEFAULT; static final String TRUE; static final String FALSE; static final String NULL; static final String[] EMPTY_STRING_ARRAY; }
@Test public void testJoin() throws Exception { String[] src = new String[] { "1", "2", "3" }; String arrayString = StringUtils.join(src, ""); Assert.assertEquals(arrayString, "123"); arrayString = StringUtils.join(src, ","); Assert.assertEquals(arrayString, "1,2,3"); arrayString = StringUtils.join(new String[] {}, ","); Assert.assertEquals(arrayString, ""); arrayString = StringUtils.join(null, ""); Assert.assertEquals(arrayString, ""); }