java中判断字符串数组是否包含特定字符串的三种方法实现与对比

 更新时间:2025年12月17日 08:23:57   作者:悟能不能悟  
这篇文章主要为大家详细介绍了java中判断字符串数组是否包含特定字符串的三种方法实现与对比,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下

在 Java 中判断字符串数组是否包含特定字符串,有几种常见方法:

方法1:使用 Arrays.asList() 和 contains()

import java.util.Arrays;

String[] array = {"a", "b", "c"};
boolean containsA = Arrays.asList(array).contains("a");
System.out.println(containsA); // 输出 true

方法2:使用循环遍历

String[] array = {"a", "b", "c"};
boolean found = false;

for (String str : array) {
    if ("a".equals(str)) {
        found = true;
        break;
    }
}
System.out.println(found); // 输出 true

方法3:使用 Java 8+ Stream API

import java.util.Arrays;

String[] array = {"a", "b", "c"};
boolean containsA = Arrays.stream(array)
    .anyMatch("a"::equals);
System.out.println(containsA); // 输出 true

方法4:完整示例(包含 null 安全处理)

import java.util.Arrays;

public class StringArrayCheck {
    public static void main(String[] args) {
        String[] array = {"apple", "banana", "a", "cherry"};
        
        // 方法1:Arrays.asList
        System.out.println("方法1: " + Arrays.asList(array).contains("a"));
        
        // 方法2:传统循环
        boolean found = false;
        for (String s : array) {
            if ("a".equals(s)) {  // 使用 "a".equals(s) 避免 NPE
                found = true;
                break;
            }
        }
        System.out.println("方法2: " + found);
        
        // 方法3:Stream API
        System.out.println("方法3: " + 
            Arrays.stream(array).anyMatch("a"::equals));
    }
}

注意事项

空指针安全:使用 "a".equals(str)而不是 str.equals("a"),避免 str 为 null 时抛出异常

性能考虑

  • 小数组:哪种方法差异不大
  • 大数组:方法1(Arrays.asList)更高效

区分大小写:如果需要忽略大小写:

// 忽略大小写比较
String[] array = {"A", "b", "c"};
boolean containsA = Arrays.stream(array)
    .anyMatch(s -> s != null && s.equalsIgnoreCase("a"));
System.out.println(containsA); // 输出 true

推荐用法

  • 大多数情况:方法1(简洁高效)
  • 需要额外逻辑处理:方法3(Stream API)
  • 老版本Java或简单场景:方法2(传统循环)

选择哪种方法取决于你的具体场景和Java版本。

到此这篇关于java中判断字符串数组是否包含特定字符串的三种方法实现与对比的文章就介绍到这了,更多相关java判断字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java基础的详细了解第九天

    java基础的详细了解第九天

    这篇文章对Java编程语言的基础知识作了一个较为全面的汇总,在这里给大家分享一下。需要的朋友可以参考,希望能给你带来帮助
    2021-08-08
  • SpringBoot的两种启动方式原理解析(配置方案)

    SpringBoot的两种启动方式原理解析(配置方案)

    本文介绍了Spring Boot中两种启动方式,使用内置Tomcat启动和使用外置Tomcat部署,在使用内置Tomcat启动时,可以通过IDEA的main函数启动,也可以使用nohup命令在后台运行,这篇文章主要介绍了SpringBoot的两种启动方式原理 ,需要的朋友可以参考下
    2025-01-01
  • Spring Boot Pf4j模块化开发方案设计过程解析

    Spring Boot Pf4j模块化开发方案设计过程解析

    本文介绍了基于SpringPf4j实现Java版本模块化开发的设计方案,包括插件化基础设施的二次封装、Spring控制器动态注册、SpringDoc-OpenApi集成等,通过这些步骤,实现插件的动态加载和Swagger接口的动态展示,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • 深扒Java中POJO、VO、DO、DTO、PO、BO、AO、DAO的概念和区别以及如何应用

    深扒Java中POJO、VO、DO、DTO、PO、BO、AO、DAO的概念和区别以及如何应用

    po vo bo dto dao 和 pojo 是软件开发中经常使用的一些概念,用于设计和实现对象模型,下面将分别解释这些概念的含义及其在开发中的应用,这篇文章主要给大家介绍了关于Java中POJO、VO、DO、DTO、PO、BO、AO、DAO的概念和区别以及如何应用的相关资料,需要的朋友可以参考下
    2024-08-08
  • SpringBoot+MyBatis实现数据库字段加密全过程

    SpringBoot+MyBatis实现数据库字段加密全过程

    该文章介绍了如何使用SpringBoot和MyBatis实现数据库字段加密,通过自定义加密注解、加密工具类和系统拦截器,可以在业务层对需要加密的字段进行自动加密和解密,文章还提供了各个行业对敏感数据进行加密保护的示例,以及需要注意的事项
    2026-03-03
  • 使用Java实现PDF文字识别的方法详解

    使用Java实现PDF文字识别的方法详解

    在现代信息化的社会中,PDF文件已经成为一种非常常见的文档格式,本文将详细介绍如何使用Java实现PDF文字识别,包括所需的工具、库、代码实现以及实际应用中的注意事项,需要的朋友可以参考下
    2025-02-02
  • Jackson序列化丢失泛型的解决

    Jackson序列化丢失泛型的解决

    这篇文章主要介绍了Jackson序列化丢失泛型的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java多线程实现之线程调度的使用

    Java多线程实现之线程调度的使用

    Java多线程中线程调度是一个核心概念,它决定了线程如何获得CPU资源并执行,合理的线程调度策略能够充分发挥多核处理器的性能,提高程序的执行效率,本文介绍了Java线程调度的原理、机制及相关的API,感兴趣的可以了解一下
    2025-12-12
  • SpringBoot项目Jar包如何瘦身部署的实现

    SpringBoot项目Jar包如何瘦身部署的实现

    这篇文章主要介绍了SpringBoot项目Jar包如何瘦身部署的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 关于Java中如何实现文件的读写操作

    关于Java中如何实现文件的读写操作

    在Java中,可以使用File和FileInputStream、FileOutputStream、BufferedReader、PrintWriter等类来进行文件读写操作,需要的朋友可以参考下
    2023-05-05

最新评论