天天看點

Java 關于split 的一些思考和應用(常見資料處理情況)

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