【发布时间】:2017-10-06 00:11:18
【问题描述】:
我有一个包含数千行的文本文件。查找文件中是否存在某个字符串的最佳方法是什么?
要么将整个文件读入一个字符串,然后使用string.contains 方法,要么使用Files.readAllLines 方法创建所有行的列表,然后循环遍历列表中的每一行并检查该行是否包含所需的字符串与否?
更新:我使用的是 Java 7。搜索限制为每个文件(10 个文件)搜索 1-2 个字符串。要搜索的字符串随文件而变化。如果找到字符串,我想停止搜索。
【问题讨论】:
-
查找子字符串搜索算法,如Rabin-Karp 和Aho-Cosarick
-
在不知道这种情况多久会发生的情况下很难回答您的问题。即它是一次性搜索吗?搜索是否会经常发生,但查找的输入字符串经常发生变化?搜索是否会经常发生但输入文件经常更改?
-
您的具体要求是什么?在任何一行中找到字符串的时刻,您要停止吗?还是要打印所有出现的事件?