public static String[] split(String str, String limit) { List<String> result = new ArrayList<String>(); char[] chars = limit.toCharArray(); int length = str.length(); int slice = chars.length - 1; int match = 0, start = 0, count = 1; for (int i = 0; i < length; i++) { char c = str.charAt(i); if (c == chars[match]) { match++; if (match == chars.length) { result.add(str.substring(start, i - slice)); start = i + 1; count++; match = 0; } } else { if (match != 0) match = (c == chars[0]) ? 1 : 0; } } result.add(str.substring(start, length)); return result.toArray(new String[count]); }