常見的使用場景,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());