You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Stream API的filter、map方法重写Java字符串包含判断程序?

使用Stream API重写字符串包含判断程序

原代码的功能是把指定字符串按空格分割后,逐个判断每个子串是否被主字符串包含,最终输出每行对应的true或false。用Stream API的map和collect方法可以更简洁地实现,避免手动操作StringBuilder:

String mainString = "qrfghjtysd";
String container = "qre fgh ty np";
String[] smallStrings = container.split("\\s++");

// Stream API重写实现
String result = Arrays.stream(smallStrings)
        // 把每个子串映射为对应的判断结果字符串
        .map(str -> mainString.contains(str) ? "true" : "false")
        // 用系统默认换行符拼接所有结果
        .collect(Collectors.joining(System.lineSeparator()));

System.out.println(result);

核心点说明:

  • map方法:替代原代码里的forEach判断逻辑,直接将每个子串转换为对应的true/false字符串,这是Stream处理元素转换的标准用法。
  • collect(Collectors.joining(...)):代替手动用StringBuilder拼接的操作,Stream会自动完成字符串拼接,代码更简洁易维护。
  • 如果不需要先拼接成完整字符串,也可以直接通过forEach打印每一行,不过这种方式会多次调用输出方法,效率略低:
Arrays.stream(smallStrings)
        .map(str -> mainString.contains(str) ? "true" : "false")
        .forEach(System.out::println);

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:35:23