当前位置:   article > 正文

几种文字匹配算法

文字匹配规则算法

最近 Android 做了一个全文关键字高亮的功能,直接用了 Java 现成的 API 解决了,在查阅资料的过程中得知还有几种匹配算法:BF、RK、KMP、BM、Sunday,有空就做了一些了解。这里记录一下防止忘记,阮一峰大神关于这些算法的博客写的很好。

BF

暴力检索,这种方法最容易想到,也是最容易实现的,从首字母开始挨个的将关键字和做比对。用下面的图片就能只管的说明(图片来自阮一峰大神的博客)

代码实现:

  1. package other.string.textmatch;
  2. /**
  3. * 暴力检索
  4. */
  5. public class BFMatch {
  6. /**
  7. * 暴力检索,输出匹配到的关键字的起始索引(包括起始索引在内,因为有的是不包括结尾下标在内,所以这里说明一下)
  8. *
  9. * @param originText 原始文字
  10. * @param keyword 要匹配的关键字
  11. */
  12. public static void BFMatch(String originText, String keyword) {
  13. char originChar;
  14. for (int i = 0; i < originText.length(); i++) {
  15. for (int j = 0; j < keyword.length(); j++) {
  16. if (i + j >= originText.length()) break;
  17. originChar = originText.charAt(i + j);
  18. if (originChar != keyword.charAt(j)) {
  19. break;
  20. }
  21. if (j == keyword.length() - 1) {
  22. System.out.println("找到匹配字符串,起始:" + i +
  23. " 终止:" + (i + keyword.length() - 1));
  24. }
  25. }
  26. }
  27. }
  28. public
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/238480
推荐阅读
相关标签
  

闽ICP备14008679号