### Question:
StringUtils { public static String camelToSplitName(String camelName, String split) { if (isEmpty(camelName)) { return camelName; } StringBuilder buf = null; for (int i = 0; i < camelName.length(); i++) { char ch = camelName.charAt(i); if (ch >= 'A' && ch <= 'Z') { if (buf == null) { buf = new StringBuilder(); if (i > 0) { buf.append(camelName.substring(0, i)); } } if (i > 0) { buf.append(split); } buf.append(Character.toLowerCase(ch)); } else if (buf != null) { buf.append(ch); } } return buf == null ? camelName : buf.toString(); } private  StringUtils(); static int length(final CharSequence cs); static String repeat(final String str, final int repeat); static String repeat(final String str, final String separator, final int repeat); static String removeEnd(final String str, final String remove); static String repeat(final char ch, final int repeat); static String stripEnd(final String str, final String stripChars); static String replace(final String text, final String searchString, final String replacement); static String replace(final String text, final String searchString, final String replacement, int max); static boolean isBlank(String str); static boolean isEmpty(String str); static boolean isNoneEmpty(final String... ss); static boolean isAnyEmpty(final String... ss); static boolean isNotEmpty(String str); static boolean isEquals(String s1, String s2); static boolean isInteger(String str); static int parseInteger(String str); static boolean isJavaIdentifier(String s); static boolean isContains(String values, String value); static boolean isContains(String[] values, String value); static boolean isNumeric(String str); static String toString(Throwable e); static String toString(String msg, Throwable e); static String translate(String src, String from, String to); static String[] split(String str, char ch); static String join(String[] array); static String join(String[] array, char split); static String join(String[] array, String split); static String join(Collection<String> coll, String split); static String getQueryStringValue(String qs, String key); static Map<String, String> parseQueryString(String qs); static String getServiceKey(Map<String, String> ps); static String toQueryString(Map<String, String> ps); static String camelToSplitName(String camelName, String split); static String toArgumentString(Object[] args); static final String EMPTY; static final int INDEX_NOT_FOUND; static final String[] EMPTY_STRING_ARRAY; }### Answer:
@Test public void testCamelToSplitName() throws Exception { assertEquals("ab-cd-ef", StringUtils.camelToSplitName("abCdEf", "-")); assertEquals("ab-cd-ef", StringUtils.camelToSplitName("AbCdEf", "-")); assertEquals("ab-cd-ef", StringUtils.camelToSplitName("ab-cd-ef", "-")); assertEquals("abcdef", StringUtils.camelToSplitName("abcdef", "-")); }