org.springframework.util.StringUtils 方法commaDelimitedListToStringArray(String str)

来源:互联网 发布:淘宝优惠券群怎么加人 编辑:程序博客网 时间:2024/06/08 03:55
//方法 返回一个String []    
public static String[] commaDelimitedListToStringArray(String str)
    {
        return delimitedListToStringArray(str, ",");
    }
//
    public static String[] delimitedListToStringArray(String str, String delimiter)
    {
        return delimitedListToStringArray(str, delimiter, null);
    }
//delimiter ","
    public static String[] delimitedListToStringArray(String str, String delimiter, String charsToDelete)
    {
        if(str == null)
            return new String[0];
        if(delimiter == null)
            return (new String[] {
                str
            });
        List result = new ArrayList();
        if("".equals(delimiter))
        {
            for(int i = 0; i < str.length(); i++)
                result.add(deleteAny(str.substring(i, i + 1), charsToDelete));
        } 
//代码调用的部分
else
        {
            int pos;
            int delPos;
   //indexOf(String str, int fromIndex) 方法返回在此字符串中第一次出现的指定子指数,
//在指定的索引开始。返回的整数是最小的k值: 
            for(pos = 0; (delPos = str.indexOf(delimiter, pos)) != -1; pos = delPos + delimiter.length())
//获得一个逗号分隔的字符串 str.substring(pos, delPos)
                result.add(deleteAny(str.substring(pos, delPos), charsToDelete));
            if(str.length() > 0 && pos <= str.length())
                result.add(deleteAny(str.substring(pos), charsToDelete));
        }
        return toStringArray(result);
    }
//charsToDelete为 null
    public static String deleteAny(String inString, String charsToDelete)
    {
        if(!hasLength(inString) || !hasLength(charsToDelete))
            return inString;
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < inString.length(); i++)
        {
            char c = inString.charAt(i);
            if(charsToDelete.indexOf(c) == -1)
                sb.append(c);
        }
        return sb.toString();
    }













0 0