Java 中字符串包含判断的全面指南104
在 Java 中,判断一个字符串是否包含另一个字符串是一个常见的任务。本文将详细探讨 Java 中用于检查字符串包含的各种方法,包括使用内置方法、正则表达式和自定义算法。
使用内置方法
Java 提供了几个内置方法来检查字符串包含,包括:
contains():此方法检查字符串是否包含另一个字符串,并返回一个布尔值。
indexOf():此方法搜索字符串中特定字符或字符串的第一个匹配项,并返回其索引,如果没有找到则返回 -1。
lastIndexOf():此方法搜索字符串中特定字符或字符串的最后一个匹配项,并返回其索引,如果没有找到则返回 -1。
String str = "Hello World";
// 检查字符串是否包含 "World"
boolean containsWorld = ("World");
// 检查字符串中是否包含 "H"
int indexOfH = ("H"); // 返回 0
int lastIndexOfH = ("H"); // 返回 7
使用正则表达式
正则表达式是一种强大的工具,可用于在字符串中查找模式。您可以使用正则表达式来检查字符串是否包含另一个字符串,如下所示:import ;
String str = "Hello World";
// 检查字符串是否包含 "World"
boolean containsWorld = (".*World.*", str);
使用自定义算法
如果您需要更灵活或可定制的字符串包含检查,您可以使用自定义算法。一种常见的算法是 Boyer-Moore 算法。public static boolean contains(String str, String substring) {
int n = ();
int m = ();
if (m > n) {
return false;
}
int[] last = new int[256];
for (int i = 0; i < 256; i++) {
last[i] = -1;
}
for (int i = 0; i < m; i++) {
last[(i)] = i;
}
int i = m - 1;
int j = m - 1;
while (i < n) {
if ((i) == (j)) {
if (j == 0) {
return true;
} else {
i--;
j--;
}
} else {
i += m - (j, 1 + last[(i)]);
j = m - 1;
}
}
return false;
}
性能比较
在选择字符串包含检查方法时,考虑性能非常重要。以下是一个使用不同方法检查字符串包含性能的粗略比较:
contains():最快
indexOf():中等
lastIndexOf():中等
正则表达式:慢
自定义算法(Boyer-Moore):最慢
在 Java 中检查字符串包含有多种方法。内置方法contains()是最简单的选择,但您也可以使用正则表达式或自定义算法来实现更灵活或可定制的解决方案。在选择方法时,请考虑性能和您需要的特定用例。
2024-10-20
上一篇:Java 静态代码块:全面剖析
Python字符串查找与判断:从基础到高级的全方位指南
https://www.shuihudhg.cn/134118.html
C语言如何高效输出字符串“inc“?深度解析printf、puts及格式化输出
https://www.shuihudhg.cn/134117.html
PHP高效获取CSV文件行数:从小型文件到海量数据的最佳实践与性能优化
https://www.shuihudhg.cn/134116.html
C语言控制台图形输出:从入门到精通的ASCII艺术实践
https://www.shuihudhg.cn/134115.html
Python在Linux环境下的执行与自动化:从基础到高级实践
https://www.shuihudhg.cn/134114.html
热门文章
Java中数组赋值的全面指南
https://www.shuihudhg.cn/207.html
JavaScript 与 Java:二者有何异同?
https://www.shuihudhg.cn/6764.html
判断 Java 字符串中是否包含特定子字符串
https://www.shuihudhg.cn/3551.html
Java 字符串的切割:分而治之
https://www.shuihudhg.cn/6220.html
Java 输入代码:全面指南
https://www.shuihudhg.cn/1064.html