求字符串中某一指定字符串出現的次數(java)

題目描述在字符串 a="abkkcdekafghkkijkkmn" 中找出子串 “kk” 出現的次數。

在String類中 判斷字符串是否包含某一子串,用contains(); 來判斷 返回值類型爲 Boolean;

在String類中 indeof();方法既可以判斷字符串是否包含某一子串,還可以返回該子串第一次出現的索引;

所以用indexof()來寫

詳細代碼:

class  StringTest
{
	/*
             方法一
        */
     
	public static int getSubCount(String str,String key){
		int count = 0;
		int index = 0;

		while((index=str.indexOf(key))!=-1){
			System.out.println("str="+str);
			str = str.substring(index+key.length());

			count++;	
		}
		return count;
	}

	/*
	方式二。

	*/
	public static int getSubCount_2(String str,String key){
		int count = 0;
		int index = 0;

		while((index= str.indexOf(key,index))!=-1){
			System.out.println("index="+index);
			index = index + key.length();

			count++;
		}
		return count;
	}

	public static void main(String[] args) {
		String str = "kkabkkcdkkefkks";

                
		System.out.println("count="+getSubCount_2(str,"kk"));
	}

}

方法一:利用index=str.indexOf(key) 得到第一次出現子串的索引,再通過str=str.substring(index+key.length();

獲取截取後的字符串,通過循環,當不存在子串時index=-1退出循環。

方法二:

在方法中時在原字符串中進行查找,index= str.indexOf(key,index)找到第一次出現子串的索引,

index = index + key.length() 計算出在下次查找時應從index的索引位置查找。

通過循環即可全部找出。相對於第一種方法,該方法是在本字符串中進行操作,不生成多餘字符串。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章