package com.taobao.zeus.util; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ZeusStringUtil { /** * 获得str中倒数第n个c的index * @param str * @param c * @param n * @return */ public static int nthLastIndexOf(String str, char c, int n) { if (str == null) { return -1; } int pos = str.lastIndexOf(c); while (n-- > 0 && pos != -1) { pos = str.lastIndexOf(c, pos - 1); } return pos; } /** * 修改自 {@link com.alibaba.common.lang.StringUtil#split(String, char)} * <br>连续分隔符处理成空字符串 * <br>如: * split("aabad",'a')={"","","b","d"} * @param str * @param separatorChar * 分隔符 * @return */ public static String[] split(String str, char separatorChar) { if (str == null) { return null; } int length = str.length(); if (length == 0) { return new String[0]; } List<String> list = new ArrayList<String>(); int i = 0; int start = 0; while (i < length) { if (str.charAt(i) == separatorChar) { list.add(str.substring(start, i)); start = ++i; continue; } i++; } list.add(str.substring(start, i)); return list.toArray(new String[list.size()]); } public static void main(String[] args){ System.out.println(Arrays.asList((split("aabad",'a')))); } }