Java中最快的子字符串搜索方法是什么
2022-09-03 09:09:37
我需要实现一种使用Java在字符串列表(haystack)中搜索子字符串(针)的方法。
更具体地说,我的应用具有用户配置文件列表。如果我键入一些字母,例如“Ja”,然后搜索,那么名称中包含“ja”的所有用户都应该显示出来。例如,结果可能是“杰克”,“杰克逊”,“杰森”,“迪贾夫”。
在Java中,据我所知,有3个内置方法可以在字符串中查看搜索子字符串。
string.contains()
string.indexOf()
正则表达式。它类似于 string.matches(“ja”))
我的问题是:上述每种方法的运行时是什么?哪一个是检查字符串列表是否包含给定子字符串的最快,最有效或最流行的方法。
我知道有一些算法可以做同样的事情,比如Boyer-Moore字符串搜索算法,Knuth-Morris-Pratt算法等等。我不想使用它们,因为我只有一小串字符串,我认为现在使用它们对我来说有点过分了。此外,我必须为这种非内置算法键入大量额外的编码。如果您认为我的想法不正确,请随时纠正我。