stream 逗号字符串转list
时间: 2025-05-22 15:22:29 浏览: 14
### 将逗号分隔的字符串转换为列表
在处理数据时,常常需要将由特定分隔符组成的字符串拆分为多个部分并存储在一个集合中。对于Java而言,可以利用`Stream API`来高效地完成这一操作。
当面对一个以逗号作为分隔符的字符串时,可以通过调用`Arrays.stream()`方法配合正则表达式去除空白字符,并最终收集至列表中[^2]:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StringToListExample {
public static void main(String[] args) {
String input = "apple, banana, orange";
List<String> result = Arrays.stream(input.split("\\s*,\\s*"))
.collect(Collectors.toList());
System.out.println(result);
}
}
```
上述代码展示了如何定义输入字符串`input`,并通过`split()`函数按照模式`\\s*,\\s*`切割该串——此模式不仅匹配逗号还涵盖了其两侧可能出现的任意数量空格,从而确保得到干净的结果集[^3]。
为了增强灵活性与可读性,在实际项目里推荐封装成独立的方法以便重用:
```java
public static <T> List<T> parseStringToList(String data, Class<T> type){
return Arrays.stream(data.split("\\s*,\\s*"))
.map(item -> convertToType(item.trim(), type))
.collect(Collectors.toList());
}
private static <T> T convertToType(String value, Class<T> targetType){
if (Integer.class.equals(targetType)) return (T)new Integer(value);
else if (Double.class.equals(targetType)) return (T)new Double(value);
// Add more conversions as needed...
throw new IllegalArgumentException("Unsupported target type");
}
```
这里引入了一个辅助性的泛型方法`convertToType`用于尝试依据指定的目标类型解析字符串项,使得整个流程更加通用化[^4]。
阅读全文
相关推荐


















