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

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.     }  
上一篇:shell高级技巧:提取vcf文件中一个contig


下一篇:keepalived安装