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

Java中如何判断字符串结尾是否匹配ArrayList中的任意元素

你要的校验逻辑可以直接通过遍历后缀列表逐一匹配实现,无需额外依赖,实现方式如下:

基础实现(兼容全Java版本)

/**
 * 校验字符串结尾是否匹配列表中任意一个后缀
 * @param current 待校验的字符串
 * @param suffixList 存储待匹配后缀的ArrayList
 * @return 匹配到任意后缀返回true,否则返回false
 */
public boolean checkEndsWithAny(String current, ArrayList<String> suffixList) {
    // 空场景直接返回不匹配
    if (current == null || suffixList == null || suffixList.isEmpty()) {
        return false;
    }
    // 遍历所有后缀逐一匹配
    for (String suffix : suffixList) {
        if (suffix != null && current.endsWith(suffix)) {
            // 匹配到直接返回,无需继续遍历
            return true;
        }
    }
    // 所有后缀都不匹配
    return false;
}

Java 8+ 简化写法(Stream流实现)

如果你使用Java 8及以上版本,可以用Stream API简化成单行表达式,代码更简洁:

import java.util.Objects;
import java.util.Optional;
import java.util.Collections;

// 直接调用即可得到布尔结果
boolean matchResult = Optional.ofNullable(suffixList)
        .orElse(Collections.emptyList())
        .stream()
        .filter(Objects::nonNull)
        .anyMatch(current::endsWith);

说明

  • 两段实现都内置了空指针防护,覆盖current为空、后缀列表为空、列表内后缀元素为空的异常场景,不需要对应防护逻辑可自行删除
  • 匹配到第一个符合要求的后缀就会终止遍历,性能最优

内容的提问来源于stack exchange,提问作者Roshan R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:24:10