Java String contains() method is used to check if the string contains specified character sequence or not.
Java String contains()方法用于检查字符串是否包含指定的字符序列。
Java字符串contains() (Java String contains())
- Java String contains() method was introduced in java 1.5 release as a utility method. Java字符串contains()方法是Java 1.5发行版中作为实用程序方法引入的。
- This method returns
true
if the string contains the specified sequence of char values. Else it returns false. 如果字符串包含指定的char值序列,则此方法返回true
。 否则返回false。 - String contains() method internally uses String
indexOf
method, below code snippet shows the contains() method definition.
String contains()方法内部使用Stringpublic boolean contains(CharSequence s) { return indexOf(s.toString()) >= 0; }
indexOf
方法,下面的代码片段显示了contains()方法的定义。 - If the argument is null, then NullPointerException is thrown, it’s clear from the above code that there is no null check for the argument string. For example;
"abc".contains(null);
will throw below exception stack trace similar to below.
如果参数为null,则抛出NullPointerException,从上面的代码可以清楚地看出,对参数字符串没有null检查。 例如;Exception in thread "main" java.lang.NullPointerException at java.base/java.lang.String.contains(String.java:2047) at com.journaldev.string.JavaStringContains.main(JavaStringContains.java:17)
"abc".contains(null);
将抛出类似于下面的异常堆栈跟踪。 - Note that string contains() method is case sensitive, so
"abc".contains("A");
will returnfalse
. 请注意,字符串contains()方法区分大小写,因此"abc".contains("A");
将返回false
。 - The argument of String contains() method is
java.lang.CharSequence
, so any implementation classes are also fine as argument, such as StringBuffer, StringBuilder andCharBuffer
. String contains()方法的参数是java.lang.CharSequence
,因此任何实现类也可以用作参数,例如StringBuffer , StringBuilder和CharBuffer
。
Java String contains()方法简单示例 (Java String contains() method simple example)
Let’s look at a simple java string contains method example.
让我们看一个简单的java字符串包含方法示例。
package com.journaldev.string;
/**
* Java String contains example
* @author pankaj
*
*/
public class JavaStringContains {
public static void main(String[] args) {
String str = "abc def";
String str1 = "//ab/\\";
System.out.println(str.contains("a")); //true
System.out.println(str.contains("\\")); //false
System.out.println(str1.contains("\\")); //true
System.out.println(str1.contains("/")); //true
boolean flag = "abc".contains("A"); //false
}
}
The output of the above program statements are shown in the comments itself and self understood.
以上程序语句的输出显示在注释本身中,并且易于理解。
Java字符串contains()具有不区分大小写的检查 (Java String contains() with case insensitive check)
For case insensitive check, we can change both the strings to either upper case or lower case before calling the contents() method.
对于不区分大小写的检查,可以在调用contents()方法之前将两个字符串都更改为大写或小写。
"abc".toLowerCase().contains("A".toLowerCase()); //true
"abc".toUpperCase().contains("A".toUpperCase()); //true
Java String contains()与CharSequence (Java String contains() with CharSequence)
Let’s look at examples of using String contains() method with
StringBuffer
,
StringBuilder
and
CharBuffer
. All these are implementations of
CharSequence
interface. Also note that
CharBuffer
is an
abstract class, creating it’s instance is slightly different from other usual classes.
让我们看看将String contains()方法与StringBuffer
, StringBuilder
和CharBuffer
一起使用的示例。 所有这些都是CharSequence
接口的实现。 还要注意, CharBuffer
是一个抽象类 ,创建它的实例与其他常规类略有不同。
//Java String contains with StringBuffer
StringBuffer sb = new StringBuffer("User");
System.out.println(str.contains(sb)); //true
//Java String contains with StringBuilder
StringBuilder sb1 = new StringBuilder(sb);
System.out.println(str.contains(sb1)); //true
//Java String contains with CharBuffer
CharBuffer cb = CharBuffer.allocate(4);
cb.append('U');cb.append('s');cb.append('e');cb.append('r');
cb.clear();
System.out.println(cb); //User
System.out.println(str.contains(cb)); //true
That’s all for java string contains method examples. If you are learning java, I would strongly recommend to go through core java tutorial.
Java字符串包含方法示例就这些了。 如果您正在学习Java,我强烈建议您阅读核心Java教程 。
Reference: API Doc
参考: API文档