stream流 包含字符串
时间: 2025-07-04 19:57:14 浏览: 0
### Java Stream 流处理包含字符串的示例
在 Java 中,Stream API 提供了强大的功能来对集合中的数据进行过滤、转换和聚合操作。以下是一个关于如何使用 Stream 流筛选出包含特定子字符串的元素的详细示例。
#### 示例:筛选包含特定子字符串的列表项
假设有一个字符串列表,需要筛选出其中包含指定字符(如 '2'、'3' 或 '4')的所有字符串:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamFilterExample {
public static void main(String[] args) {
// 定义一个字符串列表
List<String> stringList = Arrays.asList("abc2", "def", "ghi3", "jkl4", "mno", "pqr23");
// 使用 Stream 过滤包含 '2'、'3' 或 '4' 的字符串
List<String> filteredList = stringList.stream()
.filter(s -> s.contains("2") || s.contains("3") || s.contains("4")) // 筛选条件
.collect(Collectors.toList()); // 收集结果为列表
// 输出结果
System.out.println(filteredList); // 输出: [abc2, ghi3, jkl4, pqr23]
}
}
```
此代码展示了如何通过 `filter` 方法筛选出包含特定子字符串的元素[^1]。这里的关键是使用了 `String.contains()` 方法作为筛选条件。
#### 使用正则表达式进行更灵活的匹配
如果需要更复杂的匹配规则,可以结合正则表达式实现。例如,筛选出包含任意数字的字符串:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamRegexExample {
public static void main(String[] args) {
// 定义一个字符串列表
List<String> stringList = Arrays.asList("abc2", "def", "ghi3", "jkl4", "mno", "pqr23");
// 使用 Stream 和正则表达式筛选包含数字的字符串
List<String> filteredList = stringList.stream()
.filter(s -> s.matches(".*\\d.*")) // 正则表达式匹配包含数字的字符串
.collect(Collectors.toList());
// 输出结果
System.out.println(filteredList); // 输出: [abc2, ghi3, jkl4, pqr23]
}
}
```
这段代码使用了正则表达式 `.*\\d.*` 来匹配任何包含数字的字符串。这种方式更加灵活,适用于复杂的匹配需求[^2]。
#### 将筛选结果拼接为单个字符串
如果需要将筛选后的结果拼接为一个以特定分隔符连接的字符串,可以使用 `Collectors.joining()` 方法:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamJoinExample {
public static void main(String[] args) {
// 定义一个字符串列表
List<String> stringList = Arrays.asList("abc2", "def", "ghi3", "jkl4", "mno", "pqr23");
// 筛选并拼接包含数字的字符串
String result = stringList.stream()
.filter(s -> s.matches(".*\\d.*"))
.collect(Collectors.joining(", ")); // 使用逗号分隔拼接
// 输出结果
System.out.println(result); // 输出: abc2, ghi3, jkl4, pqr23
}
}
```
上述代码展示了如何通过 `Collectors.joining()` 方法将筛选后的字符串列表拼接为单个字符串[^3]。
#### 总结
Java Stream API 提供了丰富的工具来处理集合中的数据,包括筛选、转换和聚合等操作。通过 `filter` 方法可以轻松实现基于条件的筛选,而正则表达式则提供了更强大的匹配能力。此外,`Collectors.joining()` 方法使得将结果拼接为字符串变得简单高效[^4]。
阅读全文
相关推荐


















