我需要用Java实现一种在字符串列表(干草垛)中搜索子字符串(针)的方法。
更具体地说,我的应用程序有一个用户配置文件列表。如果我输入一些字母,例如“Ja”,然后进行搜索,那么包含“ja”的所有用户名都应该显示出来。例如,结果可能是“Jack”、“Jackson”、“Jason”、“Dijafu”。
据我所知,在Java中,有三种内置方法可以查找字符串中的子字符串。
string.contains()
string.indexOf()
正则表达式。就像string.matches("ja"))这样的东西
我的问题是:上述每种方法的运行时间是多少?哪一种方法是最快、最有效或最流行的检查列表中是否包含给定子字符串的方法。
我知道存在一些算法可以做同样的事情,例如Boyer-Moore字符串搜索算法、Knuth-Morris-Pratt算法等。我不想使用它们,因为我只有一个小字符串列表,我认为现在使用它们有点过度杀伤力。此外,对于这样一个非内置算法,我还必须输入很多额外的代码。如果您认为我的想法不正确,请随时纠正我。