java如何获取字符串strSub在父字符串strFather中呈现的次数
当前位置:以往代写 > JAVA 教程 >java如何获取字符串strSub在父字符串strFather中呈现的次数
2019-06-14

java如何获取字符串strSub在父字符串strFather中呈现的次数

java如何获取字符串strSub在父字符串strFather中呈现的次数

我的思路是这样的:设定一个跑标i,遍历到strFather.length()-strSub.length(),每一次的遍历,举办strFather字符串的截取,个中截取的位置为 i -> i+strSub.length()的位置,截取到的字符串strTemp跟strSub举办较量,若相等,则跑标i往后移动 strSub.length() 的位置,并让次数num 加1 。不然i 往后移动一个位置

代码如下:

/**
 * 获取字符串strSub在 父字符串strFather中呈现的次数
 * @author zhonglinsen
 * 2016-3-1 下午
 */
public class StringSubStrExistInFatherStr {
	public static void main(String[] args) {
		String str="abeefddfadeeabfkkeeabeeabeerfab";
		String str1="ab";
		String str2="ee";
		String str3="f";
		
		System.out.println(getNumSubInFatherStr(str, str1));
		System.out.println(getNumSubInFatherStr(str, str2));
		System.out.println(getNumSubInFatherStr(str, str3));
	}
	
	public static int getNumSubInFatherStr(String strFather,String strSub){
		System.out.println(strFather);
		int num=0;
		int i=0;
		//留意这里的遍历次数:     因为当i置于strFather.length()-strSub.length()时候,假如
		//URL:http://www.bianceng.cn/Programming/Java/201608/50384.htm
		//String strTemp=strFather.substring(i,i+strSub.length() 获得的strTemp仍然不是所匹配的,则不需要再往下
		//遍历了,因为到谁人时候若是再执行 strFather.substring(i,i+strSub.length() 就会报异常:下标越界
		while(i <= strFather.length()-strSub.length()){
			
			//if (strFather.indexOf(strSub) != -1) {   这样写明明差池  
			
			//先举办字符串的截取,再举办equals()匹配,若匹配到了,则跑标往后移动strSub.length()个位置,不然移动一个位置
			String strTemp=strFather.substring(i,i+strSub.length());
			if (strSub.equals(strTemp)) {
				//假如找到了一次strSub   num 就加一次   同时跑标i往后移动  strSub.length()个位置
				num += 1;
				i += strSub.length();
			}else{
				//假如找不到strSub  那么num稳定,而跑标i往后移动一个位置
				i += 1;
			}
		}
		
		return num;
	}
}

    关键字:

在线提交作业