![]() |
1
7
是的,但你不会喜欢的。全部替换
This pending Commons-Lang patch 会给你一些味道。 |
![]() |
2
4
我知道这个问题可能已经解决了一段时间,但我想对算法本身进行评论。当比较一个字符串和它本身时,答案是1/string_off。当比较稍微不同的值时,这些值也会变低。 解决方法是在getcommoncharacters方法的内部for语句中将“m-1”调整为“m”。然后代码就像一个符咒一样工作:) 见 http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance 还有一些例子。 |
![]() |
3
0
|
![]() |
4
0
我不太了解Android以及它如何与数据库一起工作。WP7具有(将具有:)SQL CE。下一步通常是处理数据。添加字符串长度并限制比较。在两列上添加索引,然后按长度和值排序。长度索引也应该排序。我让它在一个旧的服务器上运行,有15万个医疗术语给我建议,在0.5秒内进行拼写检查,用户几乎看不到它,特别是在单独的线程上运行时。 我想写一篇很长时间的博客(比如2年),因为有必要。但我最后还是写了几句,并提供了一些建议。请在这里查看: 虽然它是针对微软平台的,但总体原则还是一样的。 |
![]() |
5
0
是的,这可以快很多。首先,您根本不需要StringBuffers。另一方面,您不需要一个单独的循环来计算换位。 你可以找到 my implementation here 而且应该快得多。它获得了Apache2.0许可。 |
![]() |
6
0
相反,使用getcommoncharacters方法返回公共字符,使用两个数组来保持匹配,类似于这里的C版本 https://github.com/miguelvps/c/blob/master/jarowinkler.c
另一个优化是为每个字符串预先计算位掩码。 使用它,检查第一个字符串上的当前字符在第二个字符串上是否存在。这可以使用有效的位操作来完成。 这将跳过计算最大/最小值和缺少字符的循环。 |