字符串转集合

本文介绍了一种使用Apache Commons Lang库中StringUtils类的方法来简化集合与字符串之间的转换过程。通过示例展示了如何将集合转换为用特定字符分隔的字符串,以及如何将这种格式的字符串还原为集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import org.apache.commons.lang.StringUtils;

有这么一个简单的方法:String str=StringUtils.join(list,",");

第一个参数list表示要转换的集合对象,

第二个参数“,”表示要把集合用逗号进行隔开,

这样一来就省去很多中间转换的步骤,可以直接得到一个用逗号分开的字符串:

集合:[篮球, 足球] --> 字符串: "篮球,足球"

集合转换成字符串:

?
1
2
3
4
import org.apache.commons.lang.StringUtils;
  
  //把集合转换成字符串
  pst.setString( 4 ,StringUtils.join(user.getFav(), "," ));

字符串转换成集合:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
  *
  */
package mypkg;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
/**
  * @author ll
  *2016年8月23日
  */
public class Test55 {
 
   /**
    * @param args
    */
   public static void main(String[] args) {
     
     //字符串
     Stringstr= "篮球,足球,排球" ;
     
     //用逗号将字符串分开,得到字符串数组
     String[] strs=str.split( "," );       
List<String> list = Arrays.asList(strs);// 将字符串数组转换成集合list
List arrayList = new ArrayList<String>(list);//list转ArrayList
     
     //查看集合
     for ( int i = 0 ; i < arrayList.size(); i++) {
       System.out.println(list.get(i));
     }
     
 
   }
 
}

结果: 

    篮球
    足球
    排球

<think>好的,用户的问题是如何在编程中将Stream字符串换为集合。首先,我需要明确用户的具体需求。Stream字符串可能指的是Java中的Stream流,里面包含字符串元素,用户希望将这些元素收集到集合中,比如List、Set等。 根据引用[1]和[2],Java的Stream API提供了终端操作来处理流的换。终端操作如collect()方法可以将流换为集合。引用[4]中的例子也展示了如何使用Stream.of()创建流,并通过forEach输出,但用户需要的是收集到集合而不是直接输出。 接下来,我需要回忆Java中常用的收集器Collectors类的方法。比如,Collectors.toList()可以将流元素收集到List,Collectors.toSet()到Set。对于字符串流,直接使用这些方法即可。如果用户需要特定的集合类型,比如TreeSet,可以通过Collectors.toCollection()指定。 另外,如果流中的字符串需要处理后再收集,比如过滤或换,可以结合中间操作如filter、map等。例如,过滤空字符串后再收集到列表。 还要考虑并行流的情况,引用[2]提到parallelStream()方法,但收集方式应该与串行流一致,因为collect()方法本身是并发友好的。 可能的代码示例包括使用collect(Collectors.toList()),或者换为其他集合类型。需要确保代码语法正确,比如导入必要的类Collectors。 最后,用户可能需要知道不同收集方式的区别,比如List和Set的特性,是否需要去重或保持顺序。这些在回答中应该简要说明,帮助用户根据需求选择合适的方法。</think>在Java编程中将Stream字符串换为集合主要通过Stream API的终端操作实现,具体方法根据目标集合类型有所不同。以下分步骤说明: ### 一、基础换方法 1. **换为List集合**: ```java Stream<String> stream = Stream.of("Java", "Python", "C++"); List<String> list = stream.collect(Collectors.toList()); ``` 这是最常用的方式,通过`Collectors.toList()`实现[^1][^4] 2. **换为Set集合**: ```java Set<String> set = stream.collect(Collectors.toSet()); ``` 自动去除重复元素,使用`Collectors.toSet()`收集器 ### 二、高级换方法 1. **指定具体集合类型**: ```java TreeSet<String> treeSet = stream.collect(Collectors.toCollection(TreeSet::new)); ``` 通过`Collectors.toCollection()`可指定具体集合类型 2. **带过滤条件的换**: ```java List<String> filteredList = stream .filter(s -> s.length() > 3) .collect(Collectors.toList()); ``` 可配合filter等中间操作进行数据处理[^2] ### 三、特殊场景处理 1. **并行流换**: ```java List<String> parallelList = stream.parallel() .collect(Collectors.toList()); ``` 并行流与串行流使用相同收集方式 2. **空值处理**: ```java List<String> safeList = stream .filter(Objects::nonNull) .collect(Collectors.toList()); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值