获取指定字符串出现的次数

简介:

Java中,如何获取指定字符串在另一个字符串中出现的次数呢?

例如,获取keyword在srcText中出现的次数?

方式一:

Java代码   收藏代码
  1. /** 
  2.      *  
  3.      * The number of occurrences of find keyword in srcText 
  4.      *  
  5.      * @param srcText 
  6.      * @param keyword 
  7.      * @return 
  8.      */  
  9.     public static int findStr1(String srcText, String keyword) {  
  10.         int count = 0;  
  11.         int leng = srcText.length();  
  12.         int j = 0;  
  13.         for (int i = 0; i < leng; i++) {  
  14.             if (srcText.charAt(i) == keyword.charAt(j)) {  
  15.                 j++;  
  16.                 if (j == keyword.length()) {  
  17.                     count++;  
  18.                     j = 0;  
  19.                 }  
  20.             } else {  
  21.                 i = i - j;// should rollback when not match  
  22.                 j = 0;  
  23.             }  
  24.         }  
  25.   
  26.         return count;  
  27.     }  

 

方式二:

Java代码   收藏代码
  1. public static int findStr2(String srcText, String keyword) {  
  2.         int count = 0;  
  3.         Pattern p = Pattern.compile(keyword);  
  4.         Matcher m = p.matcher(srcText);  
  5.         while (m.find()) {  
  6.             count++;  
  7.         }  
  8.         return count;  
  9.     }  

 

方式三:

Java代码   收藏代码
  1. public static int findStr3(String srcText, String keyword) {  
  2.         return findStr(srcText, keyword, 0);  
  3.     }  
  4.   
  5.     public static int findStr(String srcText, String keyWord, int pos) {  
  6.         int i, j, k = 0;  
  7.         i = pos;  
  8.         j = 0;  
  9.         while (i < srcText.length() && j < keyWord.length()) {  
  10.             if (srcText.charAt(i) == keyWord.charAt(j)) {  
  11.                 ++i;  
  12.                 ++j;  
  13.                 if (j == keyWord.length()) {  
  14.                     k = k + 1;// k++  
  15.                     j = 0;  
  16.                 }  
  17.             } else {  
  18.                 i = i - j + 1;  
  19.                 j = 0;  
  20.             }  
  21.         }  
  22.         return k;  
  23.     }  
相关文章
|
3月前
计算字符串中子串出现的次数
【7月更文挑战第9天】计算字符串中子串出现的次数。
38 12
|
3月前
|
算法
统计一字符串中,重叠字符出现的次数
统计一字符串中,重叠字符出现的次数
28 0
|
4月前
|
JavaScript 前端开发
JS中判断一个字符串中出现次数最多的字符,统计这个次数?
JS中判断一个字符串中出现次数最多的字符,统计这个次数?
33 0
|
5月前
|
存储 Python
判断一个字符串中出现次数最多的字符,统计这个次数?
判断一个字符串中出现次数最多的字符,统计这个次数?
65 0
|
5月前
|
JavaScript
JS判断一个字符串中出现次数最多的字符 统计这个次数
JS判断一个字符串中出现次数最多的字符 统计这个次数
|
11月前
|
Python
foreach、for in 和for of的区别?判断一个字符串中出现次数最多的字符,统计这个次数?
foreach、for in 和for of的区别?判断一个字符串中出现次数最多的字符,统计这个次数?
39 0
|
11月前
|
JavaScript 前端开发
判断一个字符串中出现次数最多的字符,统计这个次数
判断一个字符串中出现次数最多的字符,统计这个次数
68 0
判断一个字符串中出现次数最多的字符 统计这个次数
判断一个字符串中出现次数最多的字符 统计这个次数
C/C++编程题之删除字符串中出现次数最少的字符
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
|
算法 前端开发 测试技术
【前端算法】字符串中连续最多的字符以及次数
双指针与双层循环“跳步”的比较