• 周五. 10月 7th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

工具类:将数组指定范围的元素按指定格式(含前后缀、分隔符等)连接成字符串

admin

11月 28, 2021

   

public class StringUtil
{
    private static String checkNull(String str)
    {
        if (str == null)
        {
            return "";
        }
        return str;
    }
    
    private static String checkToString(Object obj)
    {
        if (obj == null)
        {
            return "null";
        }
        return obj.toString();
    }
    
    /* 
     * 将数组指定范围的元素按指定格式连接成字符串
     * @param src  源数组
     * @param prePrompt  前置提示字符串,一般为空 "",常用的有 "xxx:" 
     * @param prefix 前缀字符串,一般为"["
     * @param suffix 后 缀字符串,一般为"]"
     * @param separator  数组元素分隔符,一般设为用分号","
     * @param start   要参与连接的数组首元素下标
     * @param len   要参与连接数组元素的长度
     * @return    数组元素连接成的字符串
     */
    private static  String  concatElementsToString(Object[] src, String prePrompt, String prefix, String suffix,
        String separator, int start, int len)
    {
        if (src == null)
        {
            return "";
        }
        if (src.length == 0)
        {
            return "";
        }
        if (len <= 0 )
        {
            return "";
        }
        if(len>src.length-start){
            len=src.length-start;
        }
        
        prePrompt = checkNull(prePrompt);
        prefix = checkNull(prefix);
        suffix = checkNull(suffix);
        separator = checkNull(separator);
        
        StringBuilder strBuilder = new StringBuilder();
        strBuilder.append(prePrompt);
        strBuilder.append(prefix);
        for (int i = start; i < start + len; i++)
        {
            strBuilder.append(checkToString(src[i]));
            strBuilder.append(separator);
        }
        int oldStringBuilderLength = strBuilder.length();
        StringBuilder resultStrBuilder = new StringBuilder(
            strBuilder.toString().substring(0, oldStringBuilderLength - separator.length()));
        resultStrBuilder.append(suffix);
        return resultStrBuilder.toString();
    }
    
    
    
  
    /** 
     * 将数组的所有元素按指定格式连接成字符串
     * @param src     数组源 
     * @param prefix 前缀字符串,一般为"["
     * @param suffix  后 缀字符串,一般为"]"
     * @param separator 数组元素分隔符,一般设为用分号","
     * @return  数组元素连接成的字符串
     */
    public static String concatElementsToString(Object[] src, String prefix, String suffix, String separator)
    {
        
        return concatElementsToString(src, null, prefix, suffix, separator, 0, src.length);
        
    }
 
    /** 
     * 将数组指定范围的元素按指定格式连接成字符串
     * @param src    源数组 
     * @param prefix   前缀字符串,一般为"["
     * @param suffix   后 缀字符串,一般为"]"
     * @param separator  数组元素分隔符,一般设为用分号","
     * @param start    要参与连接的数组首元素下标
     * @param len    要参与连接数组元素的长度
     * @return 数组元素连接成的字符串
     */
    public static String concatElementsToString(Object[] src, String prefix, String suffix, String separator,int start,int len){
        return concatElementsToString(src, null, prefix, suffix, separator, start, len);
    }
    
    /** 
     * 将数组下标大于等于start的各元素按指定格式连接成字符串
     * @param src 源数组 
     * @param prefix  前缀字符串,一般为"["
     * @param suffix    后缀字符串,一般为"]"
     * @param separator  数组元素分隔符,一般设为用分号","
     * @param start    要参与连接的数组首元素下标
     * @return   数组元素连接成的字符串
     */
    public static String concatElementsToString(Object[] src, String prefix, String suffix, String separator,int start){
        return concatElementsToString(src, null, prefix, suffix, separator, start,src.length-start);
    }
    public static void main(String[] args)
    {
        String a=concatElementsToString(Constants.ISSUE_CODES,"[" ,"]", "
",1,3);
        
        String b=concatElementsToString(Constants.ISSUE_CODES,"[" ,"]", "||",9);
        String c=concatElementsToString(Constants.ISSUE_CODES,"[" ,"]", ",");
        System.out.println(a);
        System.out.println(b);
        
        System.out.println(c);
    }
}

 控制台输出

发表回复

您的电子邮箱地址不会被公开。