|
|
1
3
你可能会发现 Suffix Trees 有用(它们在概念上与尝试相似)。 每个字符串前加^并以$结尾,然后创建所有附加字符串的后缀树。空间使用将是O(N),可能会比您为特里亚所拥有的更糟。 如果现在需要搜索字符串s,可以很容易地在o(s_)时间内搜索,就像trie一样,得到的匹配将是子字符串匹配(基本上,您将匹配一些字符串的后缀)。
找到了一个有用的stackoverflow答案: Generalized Suffix Tree Java Implementation 它有: http://illya-keeplearning.blogspot.com/2009/04/suffix-trees-java-ukkonens-algorithm.html 依次是:源代码: http://illya.yolasite.com/resources/suffix-tree.zip |
|
|
2
1
正则表达式绝对是您的最佳选择。它们编写起来可能有点混乱,但它们是唯一一种可以在没有不可理解的if/else或switch语句系列的情况下进行松散匹配的方法。 另外,他们会比替代方案快得多。 |
|
|
3
1
你可以使用 BM algorithm 在文本文件中搜索单个模式,并对列表中的所有模式重复此算法。 另一个最好的解决方案是使用多模式搜索算法,如: AhoâCorasick string matching algorithm |
|
|
4
0
我不完全确定我是否正确理解了这个问题,但听起来正则表达式可以解决这个问题。 http://java.sun.com/developer/technicalArticles/releases/1.4regex/ |
|
|
5
0
为什么不使用Java中的索引方法呢?根据内存的可用性,读取内容。执行indexof并获取所需的所有行。加载下一组内容。 如果从文件读取,则使用NIO流。 可能是想法不好,但我相信Java。它将使用最佳算法。 最好使用正则表达式。 |
|
|
Dave Bird · 如何在包含链接的单元格中找到字符串? 9 年前 |