class TStringUtil extends StringUtils {

    public static List<String> recursiveSplit(String str, String splitor) {
        List<String> re = new ArrayList<String>();
        String[] strs = twoPartSplit(str, splitor);
        if (strs.length == 2) {
            re.add(strs[0]);
            re.addAll(recursiveSplit(strs[1], splitor));
        } else {
            re.add(strs[0]);
        }
        return re;
    }

}

class TStringUtilTest {

    @Test
    public void testRecursiveSplit() {

        Assert.assertEquals(TStringUtil.recursiveSplit("abc:bc:bc", ":"), Arrays.asList("abc", "bc", "bc"));
        Assert.assertEquals(TStringUtil.recursiveSplit("abc:bc", "d"), Arrays.asList("abc:bc"));
        Assert.assertEquals(TStringUtil.recursiveSplit("abc:bc", ";"), Arrays.asList("abc:bc"));
    }

}