java - 高效的字符串文本搜索

标签 java

我想创建一个方法,在一小段文本(通常不超过 256 个字符)中搜索是否存在大约 20 个不同的单词。如果它在文本中找到一个,无论大小写,它都会返回 true。

该方法将执行相当多的次数(不是疯狂的数量),因此它必须尽可能高效。您认为这里最好的是什么?

这 20 个字没有改变。它们是静态的。但要扫描的文本却可以。

最佳答案

我建议:将输入文本中的所有单词添加到 Set 中 - 毕竟只有 256 个字符,并且添加它们的时间为 O(n)操作。

之后,您可以使用 Setcontains() 操作来测试 20 个左右单词中的每一个单词的成员资格,即 O(1) .

关于java - 高效的字符串文本搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969234/

相关文章:

java - 在 Activity 之外构建 AlertDialog (RecyclerView.Viewholder)

java - 如何反转字符串?

java - 在TornadoFX中,如何在其他属性更改时更改其中一个属性?

Java 并发实践 : Listing 3. 12 和 3.13

java - 什么是NullPointerException,我该如何解决?

java - Spring MVC @Controller 拦截自己的请求

java - AppEngine Blob 上传速度极慢

java - Tomcat 8 限制内存

java - 如何计算 boolean 格式的 "(num1+ num2) < num 3 "表达式?

java - for 循环在 Android 设备上非常慢