2 回答
TA贡献1810条经验 获得超4个赞
从你问题描述来看...应该是说其他某个语言有个方法是string.join,所以问问java中有没有类似方法与之对应,虽然我不清楚你那个语言里的sting.join代表啥意思,但是java8在String类中更新了一个新的静态方法就叫join,该方法可以把字符串串联起来,类似下面这种
1 2 3 4 5 | public static void main(String[] args) { String[] arr = {"a", "b", "c"}; String str = String.join(",", arr); System.out.println(str); } |
这个方法一共有两个参数,也好理解,第一个参数是一个连接符号,第二个参数是一个数组,要串联的列表
虽然有这个静态方法,但是在Java8推荐的流使用模式下,更多情况,应该是使用流来处理
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static void main(String[] args) { String[] arr = {"a", "b", "c"}; // 无符号连接,最后结果abc String str = Arrays.stream(arr).collect(Collectors.joining()); System.out.println(str); // 指定符号连接,最后结果a,b,c String str1 = Arrays.stream(arr).collect(Collectors.joining(",")); System.out.println(str1); // 指定符号连接,指定最前和最后,最后结果{a,b,c} String str2 = Arrays.stream(arr).collect(Collectors.joining(",", "{", "}")); System.out.println(str2);
} |
这里用到了Collectors.join方法,这个方法比起String.join方法更为强大
TA贡献1842条经验 获得超12个赞
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 可以使用以下方法: String org.apache.commons.lang.StringUtils.join(Object[] array, String separator)
//部分源码如下 public static String join(Object[] array, String separator){ if (array == null) { return null; } return join(array, separator, 0, array.length); }
public static String join(Object[] array, String separator, int startIndex, int endIndex) { if (array == null) { return null; } if (separator == null) { separator = ""; } int bufSize = endIndex - startIndex; if (bufSize <= 0) { return ""; } bufSize *= (((array[startIndex] == null) ? 16 : array[startIndex].toString().length()) + separator.length()); StringBuffer buf = new StringBuffer(bufSize); for (int i = startIndex; i < endIndex; ++i) { if (i > startIndex) { buf.append(separator); } if (array[i] != null) { buf.append(array[i]); } } return buf.toString(); }
//使用示例: public static void main(String[] args) { String[] arr = { "777", "www", "b" }; System.err.println(StringUtils.join(arr, "&")); //输出777&www&b } |
添加回答
举报