常見的使用場景,java後端經常需要傳遞多個參數值,用【,】隔開,然後背景再使用split進行資料分割,轉換成清單,但是有時候,這個清單,還需要二次轉換成其他資料,往往需要好幾行代碼才能實作,是以想了下,jdk8以後的版本,都是支援流處理的,可以非常友善的轉換這類資料,将 String 資料轉換成 List 、List、List 等數組
// 格式化轉換,有時候得到的資料,很奇怪,就需要特殊處理下
String ids = "1,2,3,4,5,,6,非數字,7";
List<Integer> idList = Arrays.stream(ids.split(",")) // 切割字元串
.filter(o -> NumberUtil.isNumber(o)) // 判斷資料是否是數字格式
.map(Integer::parseInt) // 轉換成所需要的數字格式
.collect(Collectors.toList());
// 列印執行結果
System.out.println(idList);
執行結果(較好地輸出了結果值)
[1, 2, 3, 4, 5, 6, 7]
如上,隻要一行代碼,就可以将一個字元串變量提取成需要的格式,并轉換成清單,友善用于各種資料操作
List idList = Arrays.stream(ids.split(",")).filter(o -> NumberUtil.isNumber(o)).map(Integer::parseInt).collect(Collectors.toList());