大數據

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());

Leave a Reply

Your email address will not be published. Required fields are marked *