统计某字符串在另一个字符串中出现的次数

 1 /**
 2  * 统计某字符串在另一个字符串中出现的次数
 3  *
 4  *
 5  */
 6 public class CountHit {
 7     public static void main(String[] args) {
 8         String a = "123456abcdde6abcbcb";
 9         String b = "6abc";
10         System.out.println(new CountHit().hit(a, b));
11     }
12
13     /**
14      *
15      * @param a
16      *            被匹配的长字符串
17      * @param b
18      *            匹配的短字符串
19      * @return 匹配次数
20      */
21     public int hit(String a, String b) {
22         if (a.length() < b.length()) {
23             return 0;
24         }
25         char[] a_t = a.toCharArray();
26         char[] b_t = b.toCharArray();
27         int count = 0, temp = 0, j = 0;
28
29         for (int i = 0; i < a_t.length; i++) {
30             // 保证一个连续的字符串 b 跟 a中某段相匹配
31             if (a_t[i] == b_t[j] && j < b_t.length) {
32                 temp++;
33                 j++;
34                 // 此时连续的字符串 b 跟 已跟 a 中某段相匹配
35                 if (temp == b_t.length) {
36                     count++;
37                     temp = 0;
38                     j = 0;
39                 }
40             }
41             // 只要有一个字符不匹配,temp计数从来
42             else {
43                 temp = 0;
44                 j = 0;
45             }
46         }
47
48         return count;
49     }
50 }
时间: 2024-10-19 21:12:04

统计某字符串在另一个字符串中出现的次数的相关文章

Java实现统计某字符串在另一个字符串中出现的次数

面试时会经常考这样的题目,估计也不让使用正则表达式.还好这个算法还算简单,不过在草稿纸上写难免会出现运行异常,好吧,面试官赢了,乃们屌丝就实实在在的把代码码出来吧. 下面是实现代码: /** * 统计某字符串在另一个字符串中出现的次数 * * */ public class CountHit { public static void main(String[] args) { String a = "123456abcde6ab"; String b = "6abc"

在php中判断一个字符串包含另一个字符串

方法一:用php的strpos() 函数判断字符串中是否包含某字符串的方法 if(strpos('Longway','way') !== false){ echo '包含way'; }else{ echo '不包含way'; } 方法二:使用了explode 用explode进行判断PHP判断字符串的包含代码如下: <?php $url = "001a.gif"; $str = "a"; $con = explode($str,$url); if (count

Java 一个字符串在另外一个字符串出现次数

统计一个字符串在另外一个字符串出现次数 代码如下: package me.chunsheng.javatest; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by wei_spring on 16/10/11. * <p> * 统计一个字符串在另外一个字符串出现的次数 * 正则匹配的方法,前提字符串不是特殊字符串 * eg:finder("adadadadauuada&qu

python练习:编写一个函数isIn,接受两个字符串作为参数,如果一个字符串是另一个字符串的一部分,返回True,否则返回False。

重难点:定义函数的方法.使用str类型的find()函数,可以查找多个字符.第二种方法为把字符串转化为字符队列,然后遍历寻找,但是只可以寻找一个字符. 1 print("----------------------------") 2 def isIn(x,y):#def定义函数保留字 3 v=y.find(x) 4 if v>=0: 5 return True; 6 else: 7 return False; 8 print(isIn('sxc','azdsxcv'))#输出函

输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。

#include <stdio.h>#include <string.h> /*输入5个学生的名字(英文),使用冒泡排序按从大到小排序.提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个字符串数组就是一个二维字符数组.*/ void main(){ char stuNames[5][100]; char tmp[100]; int i = 0,j = 0; for(i = 0; i < 5; i++) { printf("请输入第%d个学生的名字:"

在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标

录入两个字符串,一个字符串是另一个字符串的字串,输出子串首字母在长字符串的位置. 两个解决办法 使用库函数strncmp(str1,str2,n); 功能:比较str1和str2两个字符串的前n个字母,一一比较,若str1大则返回1,若str1和str2相等,则返回0,否则返回-1: int compare(char *str1, char *str2) { int i; int lenstr1 = strlen(str1); int lenstr2 = strlen(str2); if( le

【C语言】判断一个字符串是否是一个字符串的旋转字符串

//判断一个字符串是否是一个字符串的旋转字符串 //利用库函数实现 #include <stdio.h> #include <string.h> #include <assert.h> int IsRotate(char *str1, const char *str2) { assert(str1); assert(str2); strncat(str1, str1,strlen(str1)); if (NULL == strstr(str1, str2)) retur

[Java]判断一个字符串包含另一个字符串中的所有字符

有两个字符串,每个字符串的字符从A-Z中选取,比如: B = "ABBC", A = "ACBBD".那么A包含所有B中出现的字符.如果A = "ACBD" 或者  A = "ABBD",则我们认为A不包含B中所有的字符.     public static void main(String[] args){         String A = "ABBC";         String B = &qu

(C#) 反转字符串,反转一个句子中单词。

这个是非常基本的一道面试题,但是要考虑周全. 首先反转一个字符串: 基本思路是变成Char数组,然后调用C#里面的方法,或者设定两个index,从头,尾向中间遍历,并交换. 方法一: Array.Reverse(char *). 注意在开始的时候要判断字符串为null或空. public static string ReverseString(string input) { if (String.IsNullOrEmpty(input)) { return input; } char[] cha