字符串中查找包含字串的次数的算法

·鄙人在深入学习String时遇到一个问题:如何查找一个字符串中包含某个子字符串的次数

我想到了一个新算法(可能不新了,已经被别人用过了也有可能),就是:把原字符串后面拼接一个非要查找的字串后用String的split方法把原字符串放进一个字符串数组里,然后求该数组的长度然后减去1即为原字符串中所包含字串的次数;

·举例:

public class Split {
public static void main(String args []){

//String a = “javakflsdljavads;kfjavadsflsjfjavajavajavajava”;
String a = “javakflsdljavads;kfjavadsflsjfjavajavajavajavatest”;
String ar[] = a.split(“java”);
System.out.println(ar.length-1);
}
}

·解释:后面加上一个除要查找的子串外的任意一个字符串的原因是为了防止出现类似如下的字符串情况

要查找的原字符串为:”javakflsdljavads;kfjavadsflsjfjavajavajavajava“;而子串为java这时候用split方法后会把字符串后面那部分省略掉,所以要拼接一个不是字符串”java”的并且也不是以”java”结尾的字符串;我们讨论的情况是子串和远串不一样的情况;

·小结:这种算法感觉比那种用循环截取字符串来计算原串包含子串的次数的方法要更直观,更好理解。有错误或者不妥的地方敬请批评指正,共同进步。

    原文作者:查找算法
    原文地址: https://blog.csdn.net/baidu2030/article/details/20904517
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞