Java 字符串常用方法

Java 字符串 contains()方法判断字符串是否包含子字符串。如果包含则返回 true,否则返回 false

注意:contains()方法区别大小写。

语法

字符串 contains() 方法的语法如下:

public boolean contains(CharSequence sequence)  

参数

sequence:指定要搜索的字符序列。

返回值

如果包含则返回 true,否则返回 false。

异常

NullPointerException:如果序列为空。

内部实现

public boolean contains(CharSequence s) {  
  return indexOf(s.toString()) > -1;
}

在这里,将 CharSequence 转换为 String。之后,调用 indexOf() 方法。方法 indexOf() 要么返回 0,要么返回大于 0 的数字,以防找到搜索的字符串。

但是,当没有找到搜索到的字符串时,indexOf() 方法返回-1。因此,执行后,contains()方法在indexOf()方法返回非负值时返回true(当找到搜索到的字符串时);否则,该方法返回 false。

示例1

文件名: ContainsExample.java

class ContainsExample{
  public static void main(String args[]){
    String name="what do you know about me";
    System.out.println(name.contains("do you know"));
    System.out.println(name.contains("about"));
    System.out.println(name.contains("hello"));
  }
}

输出:

true
true
false

示例2

contains() 方法搜索区分大小写的字符序列。如果参数不区分大小写,则返回 false。让我们看一个例子。

文件名: ContainsExample2.java

public class ContainsExample2 {
  public static void main(String[] args) {
    String str = "Hello yxjc123 readers";
    boolean isContains = str.contains("yxjc123");
    System.out.println(isContains);
    // 区分大小写
    System.out.println(str.contains("YXJC123")); // false
  }
}

输出:

true
false

示例3

contains() 方法有助于在字符串中查找字符序列。我们可以在条件语句中判断。让我们看一个例子。

文件名:包含Example3.java

public class ContainsExample3 {	
  public static void main(String[] args) {
    String str = "To learn Java visit yxjc123.com";
    if(str.contains("yxjc123.com")) {
      System.out.println("This string contains yxjc123.com");
    }else
    System.out.println("Result not found");
  }
}

输出:

This string contains yxjc123.com

示例4

当在方法的参数中传递 null 时,contains() 方法会引发 NullPointerException。以下是例子。

文件名: ContainsExample4.java

public class ContainsExample4 
{
  // 主要方法
  public static void main(String argvs[])
  {
    String str = "Welcome to yxjc123!";
    
    // 将字符串与 null 进行比较
    if(str.contains(null))
    {
      System.out.println("Inside the if block");
    }
    else
    {
      System.out.println("Inside the else block");
    }
    
  }
}

输出:

Exception in thread "main" java.lang.NullPointerException
at java.base/java.lang.String.contains(String.java:2036)
at ContainsExample4.main(ContainsExample4.java:9)

contains() 方法的限制

以下是 contains() 方法的一些限制:

  • 不要使用 contains() 方法来搜索字符串中的字符。这样做会导致错误。
  • contains() 方法只检查另一个字符串中是否存在一个字符串。它不显示找到的位置。由于这些限制,最好使用 indexOf() 方法而不是 contains() 方法。