Scala的Metaphone或Soundex

时间:2012-11-10 19:51:48

标签: scala text-comparison

我发现Apache在Java中使用Soundex和Metaphone,但我更愿意保留我在Scala中使用的文本比较库(如果可能的话)。谷歌搜索让我在Scala中找到这些算法中没有任何用处。

最糟糕的情况我可以将这些算法转换为Scala,但这并不理想。

http://commons.apache.org/codec/

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

不回答我自己的问题或其他任何问题,但可行的选择是利用Java库并在scala中创建一些伴随对象,以帮助更恰当地公开它们,并允许代码更有效地记录自己。

//Metaphone companion object for org.apache.commons.codec.language.Metaphone in /lib/commons-codec-1.7
object Metaphone {
  val metaphone = new Metaphone
  metaphone setMaxCodeLen 5

  def encode(str:String) : String = {
    metaphone encode str
  }
}

实现:

val str_meta = Metaphone encode "Starbucks"