问题:求一个字符串的指定子串的个数。
思路:将字符串中的子串全部删掉,用删除前后的字符串的长度差,可以找出子串的个数。
举例:
字符串"ineedmorehelpsoshelpmesossoshelpm",求子串"sos"的个数。
原字符串 "ineedmorehelpsoshelpmesossoshelpm",长度33
去掉"sos"后,"ineedmorehelphelpmehelpm",长度24,
长度差是9,字符串"sos"长度为3,
因此,字符串中包含3个子串"sos" (原因:9/3 = 3)
//Java代码:
int getSubStrSum ( String str , String subStr ) {
int len = str.length() - str.replace(subStr, "").length() ;
return (len / subStr.length() );
}
说明:其中,字符串的方法replace(原子串,新字串),是用新子串替换原子串
上述代码中,用空串替换子串。