(轉)【筆記】Java8利用Lambda處理String[]轉String
//記錄一下相關的轉換,以備後續學習
public static void main(String[] args){
String[] a = stripAll("1","2","3","4");//org.apache.commons.lang3.StringUtils
String[] b = stripAll(new String[]{"1","2","3","4"},"/");
System.out.println(strip("/123/123 /","/"));
System.out.println(Arrays.toString(a));
String start = "'";
String end = "'";
String link = ",";
int[] arr = {1,2,3,4};
String[] arr2 = {"1","2","3","4"};
//forEach函式實現內部迭代
StringBuilder sb = new StringBuilder();
Arrays.asList(arr2).forEach(o -> { if (sb.length() > 0) {sb.append(link);} sb.append(start + o + end);});//forEach函式實現內部迭代
System.out.println(sb);
//map collect
String str1 = Arrays.stream(arr).boxed().map(i -> start+i.toString()+end).collect(Collectors.joining(link));
String str1_1 = Arrays.stream(arr2).map(i -> start+i.toString()+end).collect(Collectors.joining(link));
System.out.println("str1:"+str1);
System.out.println("str1_1:"+str1_1);
//map reduce
String str2 = Arrays.stream(arr).boxed().map(i -> start+i.toString()+end).reduce("/", String::concat);
System.out.println("str2:"+str2);
// 方法引用Object::toString
String str3 = Arrays.stream(arr).boxed().map(Object :: toString).reduce("/", String::concat);
System.out.println("str3:"+str3);
}
列印結果:
'1','2','3','4'
str1:'1','2','3','4'
str1_1:'1','2','3','4'
str2:/'1''2''3''4'
str3:/1234