一、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方法时,需要注意以下几个问题:
- 在使用contains方法判断字符串是否包含某个子字符串时,通常会先判断该子字符串是否为空,否则会抛出空指针异常。
- 在使用contains方法判断集合是否包含某个元素时,需要保证该元素具有正确的重写equals方法,否则会出现判断不准确的情况。
- 在使用正则表达式实现contains方法时,需要保证正则表达式的正确性和合理性,否则会导致匹配失败。
原创文章,作者:GBXJ,如若转载,请注明出处:https://www.506064.com/n/131875.html
微信扫一扫
支付宝扫一扫