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。