集合流之“將List 轉為String並用逗號分割”


1、使用【流+Collectors】轉換

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.Test;

/**
 * 功能測試
 *
 * @author wzw
 * @date 2021/7/24
 */
public class wzwTest {

    /**
     * 功能描述: 將List<Integer>轉為String並用逗號分割
     *
     * @author 王子威
     * @param    null
     */
    @Test
    public void test() {
        // 案例集合
        List<Integer> orderList = new ArrayList<>();
        orderList.add(1);
        orderList.add(2);
        orderList.add(3);
        orderList.add(4);

        // 用流將List<String>獲取集合中的數,然后用Collectors.joining(“分隔符”)來進行內部分割,達到轉String的目的
        String subList = orderList.stream().map(String::valueOf).collect(Collectors.joining(","));

        // subList = 1,2,3,4
        System.out.println("subList = " + subList);
    }

}

 

  

2、使用谷歌的Joiner

import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Joiner;
import org.junit.Test;
import com.bessky.pss.common.util.CommonUtils;

/**
 * 功能測試
 *
 * @author wzw
 * @date 2021/7/24
 */
public class wzwTest {

    /**
     * 功能描述: 將List<Integer>轉為String並用逗號分割
     *
     * @author 王子威
     * @param    null
     */
    @Test
    public void test() {
        // 案例集合
        List<Integer> orderList = new ArrayList<>();
        orderList.add(1);
        orderList.add(2);
        orderList.add(3);
        orderList.add(4);

        // 使用谷歌的分割方法
        String subList = Joiner.on(",").join(orderList);
     // 結果:subList = 1,2,3,4 System.out.println(
"subList = " + subList); } }

 

3、使用String.join方法(不用需要CharSequence類型的子類才行,並且需要同類型)

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.Test;

/**
 * 功能測試
 *
 * @author wzw
 * @date 2021/7/24
 */
public class wzwTest {

    /**
     * 功能描述: 將List<Integer>轉為String並用逗號分割
     *
     * @author 王子威
     * @param    null
     */
    @Test
    public void test() {
        // 案例集合
        List<Integer> orderList = new ArrayList<>();
        orderList.add(1);
        orderList.add(2);
        orderList.add(3);
        orderList.add(4);

        // 用流先將:List<Integer>集合轉為List<String>
        List<String> collect = orderList.stream().map(String::valueOf).collect(Collectors.toList());
        // 使用String.join方法將List<String>轉為String,並用逗號分割
        String subList = String.join(",", collect);

        // subList = 1,2,3,4
        System.out.println("subList = " + subList);
    }

}

 

3、總結

  • 第1、3方式類似。最后的本質都是使用StringJoiner類的有參構造
  • 我更傾向用1和2。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM