Boyer-Moore或类似的Java或Scala库

时间:2014-05-02 01:13:41

标签: java algorithm scala

我正在寻找一个简单的API来返回所有索引的列表,其中在一个小字符串和一个较大的字符串之间发生序列对齐。

java或Scala库中是否有任何方法可以执行此操作?

1 个答案:

答案 0 :(得分:1)

无需进一步练习。 indexOf 可以解决问题。 对于一个要素:

"test" indexOf "es"
res4: Int = 1

更多元素:

scala> List("beer" , "root beer", "bavarian beer" , "a beer bong" ) map (_ indexOf "beer")
res6: List[Int] = List(0, 5, 9, 2)

如果你想使用别的东西,最好坚持使用广泛使用的一些标准实现。 例如, Apache Commons http://commons.apache.org/proper/commons-lang/有一个很好的StringUtils包,其中包含字符串匹配算法。

对于Boyer-Moore来说,有无数的实现。在维基百科上,您甚至可以找到Java实现: http://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm