java如何把逗號分隔的String字符串轉(zhuǎn)int集合
把逗號分隔的String字符串轉(zhuǎn)int集合
代碼通過Java 8 Stream實現(xiàn)起來非常容易!
String ids = "1,2,3,4,5";
List<Integer> idList = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList());集合或數(shù)組轉(zhuǎn)變?yōu)槎禾柗指舻淖址膸追N方式
首先,創(chuàng)建一個集合
List<String> list = Lists.newArrayList(null, "bob", "jack");
1、自己編碼實現(xiàn)
? ? public static <T> String join(List<T> list, String splitStr) {
? ? ? ? if (CollectionUtils.isEmpty(list))
? ? ? ? ? ? return "";
? ? ? ? if (list.size() == 1)
? ? ? ? ? ? return String.valueOf(list.get(0));
? ? ? ? StringBuilder sb = new StringBuilder();
? ? ? ? boolean isFirst = true;
? ? ? ? for (int i = 0; i < list.size(); i++) {
? ? ? ? ? ? if (!isFirst) sb.append(splitStr);
? ? ? ? ? ? sb.append(String.valueOf(list.get(i)));
? ? ? ? ? ? isFirst = false;
? ? ? ? }
? ? ? ? return sb.toString();
? ? }
? ? public static <T> String join(T[] array, String splitStr) {
? ? ? ? if (ArrayUtils.isEmpty(array))
? ? ? ? ? ? return "";
? ? ? ? if (array.length == 1)
? ? ? ? ? ? return String.valueOf(array[0]);
? ? ? ? StringBuilder sb = new StringBuilder();
? ? ? ? boolean isFirst = true;
? ? ? ? for (int i = 0; i < array.length; i++) {
? ? ? ? ? ? if (!isFirst) sb.append(splitStr);
? ? ? ? ? ? sb.append(String.valueOf(array[i]));
? ? ? ? ? ? isFirst = false;
? ? ? ? }
? ? ? ? return sb.toString();
? ? }輸出
null,bob,jack
2、org.apache.commons.lang3.StringUtils
System.out.println(StringUtils.join(list.toArray(), ","));
輸出
,bob,jack
3、StringJoiner, JDK1.8+
?? ?StringJoiner sj = new StringJoiner(",");
?? ?list.forEach(e -> sj.add(String.valueOf(e)));
?? ?System.out.println(sj.toString());
?? ?
?? ?// 在連接之前操作字符串, 拼接前綴和后綴
?? ?StringJoiner sj2 = new StringJoiner(",", "START_", "_END");
?? ?list.forEach(e -> sj2.add(String.valueOf(e)));
?? ?System.out.println(sj2.toString());輸出
null,bob,jack
START_null,bob,jack_END
4、String.join(), JDK1.8+
System.out.println(String.join(",", list));輸出
null,bob,jack
5、Stream, Collectors.joining(), JDK1.8+
?? ?System.out.println(list.stream().collect(Collectors.joining(",")));
?? ?
?? ?// 在連接之前操作字符串, 拼接前綴和后綴
?? ?String str = list.stream().map(e -> {
?? ? ? if (e != null) return e.toUpperCase();
?? ? ? else return "null";
?? ?}).collect(Collectors.joining(",", "START_", "_END"));
?? ?System.out.println(str);輸出
null,bob,jack
START_null,BOB,JACK_END
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java并發(fā)編程之CountDownLatch的使用
CountDownLatch是一個倒數(shù)的同步器,常用來讓一個線程等待其他N個線程執(zhí)行完成再繼續(xù)向下執(zhí)行,本文主要介紹了CountDownLatch的具體使用方法,感興趣的可以了解一下2023-05-05
MultipartResolver實現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了MultipartResolver實現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
java多線程join()方法的作用和實現(xiàn)原理解析(應(yīng)用場景)
join方法主要是用于將當(dāng)前線程掛起,等待其他線程結(jié)束后在執(zhí)行當(dāng)前線程,本文通過應(yīng)用場景分析代碼示例講解java多線程join()方法的作用和實現(xiàn)原理,感興趣的朋友一起看看吧2021-07-07
SpringCloud Webflux過濾器增加header傳遞方式
這篇文章主要介紹了SpringCloud Webflux過濾器增加header傳遞方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(一)之MyBatis的基礎(chǔ)知識
這篇文章主要介紹了Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(一)之MyBatis的基礎(chǔ)知識,需要的朋友可以參考下2017-05-05
java利用pdfbox+poi往pdf插入數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于java利用pdfbox+poi如何往pdf插入數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-02-02

