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

Java如何统计字符串数组中包含指定子串的元素总个数

Java统计字符串数组中包含指定子串的元素个数

核心逻辑

你之前只能匹配完全相等元素是因为使用了equals()做全等判断,替换为String类自带的contains(CharSequence s)方法即可实现子串包含判断,该方法只要字符串任意位置存在目标子串就返回true。

实现方式

1. 普通循环实现(兼容所有Java版本)

public class SubstringCounter {
    public static int countContainsSubstring(String[] inputArray, String targetSubstring) {
        // 空校验,避免空指针异常
        if (inputArray == null || inputArray.length == 0 || targetSubstring == null) {
            return 0;
        }
        int count = 0;
        for (String item : inputArray) {
            // 跳过数组中的空元素,匹配包含子串的元素
            if (item != null && item.contains(targetSubstring)) {
                count++;
            }
        }
        return count;
    }

    public static void main(String[] args) {
        // 测试用例
        String[] testArray = {"the", "and", "land", "wander", "dreams"};
        String target = "and";
        System.out.println(countContainsSubstring(testArray, target)); // 输出结果为3
    }
}

2. Stream流式实现(适用于Java 8及以上版本)

代码更简洁,函数式风格实现:

import java.util.Arrays;

public class SubstringCounter {
    public static long countContainsSubstring(String[] inputArray, String targetSubstring) {
        return Arrays.stream(inputArray)
                .filter(item -> item != null)
                .filter(item -> item.contains(targetSubstring))
                .count();
    }

    public static void main(String[] args) {
        String[] testArray = {"the", "and", "land", "wander", "dreams"};
        String target = "and";
        System.out.println(countContainsSubstring(testArray, target)); // 输出结果为3
    }
}

注意事项

  • contains()方法默认大小写敏感,如需忽略大小写匹配,可将判断逻辑修改为item.toLowerCase().contains(targetSubstring.toLowerCase())
  • 示例中加入了空指针校验逻辑,避免数组为空、子串为空、数组元素为null时抛出异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:09:05