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); } }
控制台输出