2 回答

TA貢獻1966條經(jīng)驗 獲得超4個贊
從你問題描述來看...應(yīng)該是說其他某個語言有個方法是string.join,所以問問java中有沒有類似方法與之對應(yīng),雖然我不清楚你那個語言里的sting.join代表啥意思,但是java8在String類中更新了一個新的靜態(tài)方法就叫join,該方法可以把字符串串聯(lián)起來,類似下面這種
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); } |
這個方法一共有兩個參數(shù),也好理解,第一個參數(shù)是一個連接符號,第二個參數(shù)是一個數(shù)組,要串聯(lián)的列表
雖然有這個靜態(tài)方法,但是在Java8推薦的流使用模式下,更多情況,應(yīng)該是使用流來處理
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static void main(String[] args) { String[] arr = {"a", "b", "c"}; // 無符號連接,最后結(jié)果abc String str = Arrays.stream(arr).collect(Collectors.joining()); System.out.println(str); // 指定符號連接,最后結(jié)果a,b,c String str1 = Arrays.stream(arr).collect(Collectors.joining(",")); System.out.println(str1); // 指定符號連接,指定最前和最后,最后結(jié)果{a,b,c} String str2 = Arrays.stream(arr).collect(Collectors.joining(",", "{", "}")); System.out.println(str2);
} |
這里用到了Collectors.join方法,這個方法比起String.join方法更為強大

TA貢獻1810條經(jīng)驗 獲得超4個贊
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 } |
添加回答
舉報