📅  最后修改于: 2023-12-03 15:27:11.825000             🧑  作者: Mango
在计算机科学中,朴素字符串匹配算法是一种简单的字符串匹配方法,该方法通过从文本中的每个字符开始,逐个比较该字符开始的子字符串与所需匹配的字符串是否相同,直到找到完全匹配的字符串或文本末尾。
朴素算法虽然简单,但即使在较大的文本中也可以找到相对应的模式。
下面是一个使用朴素算法实现字符串匹配的Java程序示例:
public class NaivePatternSearch {
public static void search(String txt, String pat) {
int M = pat.length();
int N = txt.length();
for (int i = 0; i <= N - M; i++) {
int j;
for (j = 0; j < M; j++) {
if (txt.charAt(i + j) != pat.charAt(j)) {
break;
}
}
if (j == M) {
System.out.println("在位置 " + i + " 找到匹配。");
}
}
}
public static void main(String[] args) {
String txt = "AABBCAABCBCAABCD";
String pat = "AABC";
search(txt, pat);
}
}
在该程序中,search() 方法用于查找模式字符串 pat 是否在文本字符串 txt 中出现。
程序首先找到模式字符串 pat 和文本字符串 txt 的长度 M 和 N。
然后程序从 0 到 N-M 的索引进行循环。在每个索引位置,程序从该位置开始与模式字符串 pat 进行比较。如果匹配,程序会将该位置作为匹配位置打印出来。
main() 方法中定义了用于搜索的示例字符串,然后调用 search() 方法进行搜索。
虽然朴素算法在大型数据集中的状态可能非常低效,但它仍然是一种简单而实用的方法,可以方便地进行小型数据集上的字符串匹配程序编写。