您的位置:

Java中contains的使用

一、contains方法简介

contains是Java中String类和Collection接口中所定义的方法。它用于判断一个字符串或集合中是否包含某个元素,返回值为true或false。使用contains方法不需要关心元素的位置,只需要关心元素是否存在。

    //String中contains的用法
    String str = "Hello world!";
    if(str.contains("world")){
        System.out.println("包含 world");
    }

    //Collection中contains的用法
    List<String> list = new ArrayList<>();
    list.add("java");
    list.add("python");
    if(list.contains("java")){
       System.out.println("包含 java");
    }

二、String中contains的用法

contains方法在String中常用于判断一个字符串是否包含另一个字符串。String类中的contains方法的实现是利用了String类的indexOf方法。具体实现是在原字符串中查找给定子字符串的索引位置,如果索引位置不为-1则表明该子字符串存在于原字符串中,否则不存在。

另外需要注意,contains方法是区分大小写的,也就是说如果查找的子字符串与原字符串在大小写上不一致,contains方法会返回false。

    String str = "hello world";
    if(str.contains("hello")){
        System.out.println("包含 hello");
    }

三、Collection中contains的用法

在Collection接口实现类中,contains方法一般用于判断集合中是否包含某个元素。Collection类中contains方法的实现是遍历集合元素,逐一对比是否包含目标元素。

    List<String> list = new ArrayList<>();
    list.add("java");
    list.add("python");
    if(list.contains("java")){
        System.out.println("包含 java");
    }

四、使用contains实现模糊匹配

在实际场景中,我们有时需要在集合中进行模糊匹配,这时候可以使用contains方法。如下代码演示了如何使用contains实现简单的模糊匹配。

    List<String> list = new ArrayList<>();
    list.add("java");
    list.add("python");
    list.add("javascript");
    String key = "java";
    for(String str : list){
        if(str.contains(key)){
            System.out.println(str);
        }
    }

五、使用正则表达式实现contains方法

除了使用原生的contains方法,还可以使用正则表达式实现contains方法。正则表达式可以实现更加复杂的文本匹配,使用正则表达式实现contains方法可以更好地处理特定的匹配场景。

    public static boolean contains(String src, String regex){
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(src);
        return matcher.find();
    }
    
    String str = "hello world";
    if(contains(str, "wor.*")){
        System.out.println("包含 wor");
    }

六、注意事项

在使用contains方法时,需要注意以下几个问题:

  1. 在使用contains方法判断字符串是否包含某个子字符串时,通常会先判断该子字符串是否为空,否则会抛出空指针异常。
  2. 在使用contains方法判断集合是否包含某个元素时,需要保证该元素具有正确的重写equals方法,否则会出现判断不准确的情况。
  3. 在使用正则表达式实现contains方法时,需要保证正则表达式的正确性和合理性,否则会导致匹配失败。