@Test public void splitWithConsecutiveDelimiters() { assertArrayEquals(new String[] { "foo", "", "bar" }, split("foo$$bar", '$')); }
public static String[] split(String value, char delim) { final int end = value.length(); final List<String> res = new ArrayList<String>(); int start = 0; for (int i = 0; i < end; i ++) { if (value.charAt(i) == delim) { if (start == i) { res.add(EMPTY_STRING); } else { res.add(value.substring(start, i)); } start = i + 1; } } if (start == 0) { res.add(value); } else { if (start != end) { res.add(value.substring(start, end)); } else { for (int i = res.size() - 1; i >= 0; i --) { if (res.get(i).isEmpty()) { res.remove(i); } else { break; } } } } return res.toArray(new String[res.size()]); }
StringUtil { public static String[] split(String value, char delim) { final int end = value.length(); final List<String> res = new ArrayList<String>(); int start = 0; for (int i = 0; i < end; i ++) { if (value.charAt(i) == delim) { if (start == i) { res.add(EMPTY_STRING); } else { res.add(value.substring(start, i)); } start = i + 1; } } if (start == 0) { res.add(value); } else { if (start != end) { res.add(value.substring(start, end)); } else { for (int i = res.size() - 1; i >= 0; i --) { if (res.get(i).isEmpty()) { res.remove(i); } else { break; } } } } return res.toArray(new String[res.size()]); } }
StringUtil { public static String[] split(String value, char delim) { final int end = value.length(); final List<String> res = new ArrayList<String>(); int start = 0; for (int i = 0; i < end; i ++) { if (value.charAt(i) == delim) { if (start == i) { res.add(EMPTY_STRING); } else { res.add(value.substring(start, i)); } start = i + 1; } } if (start == 0) { res.add(value); } else { if (start != end) { res.add(value.substring(start, end)); } else { for (int i = res.size() - 1; i >= 0; i --) { if (res.get(i).isEmpty()) { res.remove(i); } else { break; } } } } return res.toArray(new String[res.size()]); } private  StringUtil(); }
StringUtil { public static String[] split(String value, char delim) { final int end = value.length(); final List<String> res = new ArrayList<String>(); int start = 0; for (int i = 0; i < end; i ++) { if (value.charAt(i) == delim) { if (start == i) { res.add(EMPTY_STRING); } else { res.add(value.substring(start, i)); } start = i + 1; } } if (start == 0) { res.add(value); } else { if (start != end) { res.add(value.substring(start, end)); } else { for (int i = res.size() - 1; i >= 0; i --) { if (res.get(i).isEmpty()) { res.remove(i); } else { break; } } } } return res.toArray(new String[res.size()]); } private  StringUtil(); static String[] split(String value, char delim); static String[] split(String value, char delim, int maxParts); static String substringAfter(String value, char delim); static String byteToHexStringPadded(int value); static T byteToHexStringPadded(T buf, int value); static String toHexStringPadded(byte[] src); static String toHexStringPadded(byte[] src, int offset, int length); static T toHexStringPadded(T dst, byte[] src); static T toHexStringPadded(T dst, byte[] src, int offset, int length); static String byteToHexString(int value); static T byteToHexString(T buf, int value); static String toHexString(byte[] src); static String toHexString(byte[] src, int offset, int length); static T toHexString(T dst, byte[] src); static T toHexString(T dst, byte[] src, int offset, int length); static String simpleClassName(Object o); static String simpleClassName(Class<?> clazz); }
StringUtil { public static String[] split(String value, char delim) { final int end = value.length(); final List<String> res = new ArrayList<String>(); int start = 0; for (int i = 0; i < end; i ++) { if (value.charAt(i) == delim) { if (start == i) { res.add(EMPTY_STRING); } else { res.add(value.substring(start, i)); } start = i + 1; } } if (start == 0) { res.add(value); } else { if (start != end) { res.add(value.substring(start, end)); } else { for (int i = res.size() - 1; i >= 0; i --) { if (res.get(i).isEmpty()) { res.remove(i); } else { break; } } } } return res.toArray(new String[res.size()]); } private  StringUtil(); static String[] split(String value, char delim); static String[] split(String value, char delim, int maxParts); static String substringAfter(String value, char delim); static String byteToHexStringPadded(int value); static T byteToHexStringPadded(T buf, int value); static String toHexStringPadded(byte[] src); static String toHexStringPadded(byte[] src, int offset, int length); static T toHexStringPadded(T dst, byte[] src); static T toHexStringPadded(T dst, byte[] src, int offset, int length); static String byteToHexString(int value); static T byteToHexString(T buf, int value); static String toHexString(byte[] src); static String toHexString(byte[] src, int offset, int length); static T toHexString(T dst, byte[] src); static T toHexString(T dst, byte[] src, int offset, int length); static String simpleClassName(Object o); static String simpleClassName(Class<?> clazz); static final String NEWLINE; }