From 5aa417c0684d3677362d0721437df7c6b35e997f Mon Sep 17 00:00:00 2001 From: simon-liubin Date: Thu, 26 Mar 2015 15:02:43 +0800 Subject: [PATCH 1/2] join([],sep.pre) --- src/main/java/com/qiniu/util/StringUtils.java | 123 +++--------------- 1 file changed, 19 insertions(+), 104 deletions(-) diff --git a/src/main/java/com/qiniu/util/StringUtils.java b/src/main/java/com/qiniu/util/StringUtils.java index c27a42747..ec76c960e 100644 --- a/src/main/java/com/qiniu/util/StringUtils.java +++ b/src/main/java/com/qiniu/util/StringUtils.java @@ -13,108 +13,25 @@ private StringUtils() { } /** - * 以指定的分隔符来进行字符串元素连接 - *

- * 例如有字符串数组array和连接符为逗号(,) - * - * String[] array = new String[] { "hello", "world", "qiniu", "cloud","storage" }; - * - * 那么得到的结果是: - * - * hello,world,qiniu,cloud,storage - * - *

- * - * @param array 需要连接的字符串数组 - * @param sep 元素连接之间的分隔符 - * @return 连接好的新字符串 + * @see #join(Object[] array, String sep, String prefix) */ - public static String join(String[] array, String sep) { + public static String join(Object[] array, String sep) { return join(array, sep, null); } /** - * 以指定的分隔符来进行字符串元素连接 - *

- * 例如有字符串数组array和连接符为逗号(,) - * - * String[] array = new String[] { "hello", "world", "qiniu", "cloud","storage" }; - * - * 那么得到的结果是: - * - * hello,world,qiniu,cloud,storage - * - *

- * - * @param array 需要连接的字符串数组 - * @param sep 元素连接之间的分隔符 - * @param prefix 前缀字符串 - * @return 连接好的新字符串 + * @see #join(Object[] array, String sep, String prefix) */ - public static String join(String[] array, String sep, String prefix) { - if (array == null) { - return null; - } - - int arraySize = array.length; - int sepSize = 0; - if (sep != null && !sep.equals("")) { - sepSize = sep.length(); - } - - int bufSize = (arraySize == 0 ? 0 : ((array[0] == null ? 16 : array[0].length()) + sepSize) * arraySize); - StringBuilder buf = new StringBuilder(bufSize); - if (prefix != null) { - buf.append(prefix); - } - for (int i = 0; i < arraySize; i++) { - if (i > 0) { - buf.append(sep); - } - if (array[i] != null) { - buf.append(array[i]); - } - } - return buf.toString(); + public static String join(Collection list, String sep) { + return join(list, sep, null); } /** - * 以指定的分隔符来进行字符串列表连接 - * - * @param list 需要连接的字符串列表 - * @param sep 元素连接之间的分隔符 - * @param prefix 前缀字符串 - * @return 连接好的新字符串 + * @see #join(Object[] array, String sep, String prefix) */ - public static String join(Collection list, String sep, String prefix) { - if (list == null) { - return null; - } - int arraySize = list.size(); - if (arraySize == 0) { - return prefix; - } - int sepSize = 0; - if (sep != null && !sep.equals("")) { - sepSize = sep.length(); - } - String first = list.iterator().next(); - int bufSize = ((first == null ? 16 : first.length()) + sepSize) * arraySize; - StringBuilder buf = new StringBuilder(bufSize); - if (prefix != null) { - buf.append(prefix); - } - int count = 0; - for (String it : list) { - count++; - if (it != null) { - buf.append(it); - if (count < arraySize) { - buf.append(sep); - } - } - } - return buf.toString(); + public static String join(Collection list, String sep, String prefix) { + Object[] array = list == null ? null : list.toArray(); + return join(array, sep, prefix); } /** @@ -137,31 +54,29 @@ public static String join(Collection list, String sep, String prefix) { */ public static String join(Object[] array, String sep, String prefix) { if (array == null) { - return null; + return ""; } int arraySize = array.length; if (arraySize == 0) { - return prefix; + return ""; } - int sepSize = 0; - if (sep != null && !sep.equals("")) { - sepSize = sep.length(); + + if(sep == null){ + sep = ""; } - int bufSize = ((array[0] == null ? 16 : array[0].toString().length()) + sepSize) * arraySize; - StringBuilder buf = new StringBuilder(bufSize); - if (prefix != null) { - buf.append(prefix); + if(prefix == null){ + prefix = ""; } + + StringBuilder buf = new StringBuilder(prefix); for (int i = 0; i < arraySize; i++) { if (i > 0) { buf.append(sep); } - if (array[i] != null) { - buf.append(array[i]); - } + buf.append(array[i] == null ? "" : array[i]); } return buf.toString(); } From b7d2b1487208dd7d8782960f7edc66a99aff0aaa Mon Sep 17 00:00:00 2001 From: simon-liubin Date: Thu, 26 Mar 2015 15:09:57 +0800 Subject: [PATCH 2/2] format --- src/main/java/com/qiniu/util/StringUtils.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/qiniu/util/StringUtils.java b/src/main/java/com/qiniu/util/StringUtils.java index ec76c960e..11a0f4c0f 100644 --- a/src/main/java/com/qiniu/util/StringUtils.java +++ b/src/main/java/com/qiniu/util/StringUtils.java @@ -63,11 +63,11 @@ public static String join(Object[] array, String sep, String prefix) { return ""; } - if(sep == null){ + if (sep == null) { sep = ""; } - if(prefix == null){ + if (prefix == null) { prefix = ""; }