以下哪种方法是确定子字符串包含的有效方法?
if (str.indexOf("/") > -1)
Run Code Online (Sandbox Code Playgroud)
要么
if (str.contains("/"))
Run Code Online (Sandbox Code Playgroud) 我需要实现一种使用Java在字符串(haystack)列表中搜索子字符串(针)的方法.
更具体地说,我的应用程序有一个用户配置文件列表.如果我输入一些字母,例如"Ja",然后搜索,则所有名称中包含"ja"的用户都应该显示.例如,结果可能是"Jack","Jackson","Jason","Dijafu".
在Java中,据我所知,有3种内置方法可以在字符串中查看搜索子字符串.
string.contains()
string.indexOf()
正则表达式.它类似于string.matches("ja"))
我的问题是: 上面每种方法的运行时间是多少?哪一个是检查字符串列表是否包含给定子字符串的最快或最有效或最流行的方法.
我知道存在一些做同样事情的算法,如Boyer-Moore字符串搜索算法,Knuth-Morris-Pratt算法等.我不想使用它们,因为我只有一小串字符串,我认为使用它们对我来说有点矫枉过正.此外,我必须为这种非内置算法输入许多额外的编码.如果您认为我的想法不正确,请随时纠正我.