Java函数集合:如何实现判断字符串是否包含某个子串的函数?
发布时间:2023-10-24 08:24:04
在Java中,我们可以使用String类中的contains()方法来判断一个字符串是否包含某个子串。这个方法返回一个boolean值,如果字符串包含子串,则返回true,否则返回false。
下面是一个简单的例子来演示如何使用contains()方法来判断字符串是否包含子串:
public class SubstringExample {
public static void main(String[] args) {
String str = "Hello, World!";
String substring = "World";
// 使用contains()方法判断子串是否存在于字符串中
boolean isSubstringPresent = str.contains(substring);
if (isSubstringPresent) {
System.out.println("字符串包含子串.");
} else {
System.out.println("字符串不包含子串.");
}
}
}
运行上面的代码,输出会是字符串包含子串,因为字符串"Hello, World!"包含了子串"World"。
contains()方法的底层实现使用的是KMP算法,所以它的时间复杂度为O(n+m),其中n是字符串长度,m是子串长度。这使得contains()方法在处理大量数据时具有较高的效率。
另外,如果我们只关心子串是否在字符串中出现过,并不关心具体出现的位置,也可以使用indexOf()方法来判断字符串是否包含子串。indexOf()方法会返回子串在字符串中 次出现的索引位置,如果不存在,则返回-1。
下面是一个使用indexOf()方法的例子:
public class SubstringExample {
public static void main(String[] args) {
String str = "Hello, World!";
String substring = "World";
// 使用indexOf()方法判断子串是否存在于字符串中
int index = str.indexOf(substring);
if (index != -1) {
System.out.println("字符串包含子串.");
} else {
System.out.println("字符串不包含子串.");
}
}
}
此时,输出也会是字符串包含子串。我们可以通过判断indexOf()方法的返回值是否等于-1来判断子串是否存在于字符串中。
要注意的是,contains()方法和indexOf()方法都是区分大小写的,也就是说,如果要判断的子串和字符串中的子串在大小写上有差异,那么这两个方法会返回false或者-1。
如果想要忽略大小写来进行判断,可以使用String类的toLowerCase()或者toUpperCase()方法来将字符串转换成统一的大小写,然后再进行判断。
以上就是判断字符串是否包含某个子串的方法,在实际应用中,可以根据需求选择合适的方法进行判断。
