1. 程式人生 > >java-記錄一個子串在整串中出現的次數

java-記錄一個子串在整串中出現的次數

任務描述:
編寫一個程式,記錄一個子串在整串中出現的次數,例如記錄子串“nba”在整串“nbaernbatnbaynbauinbaopnba”中出現的次數,通過觀察可知子串“nba”出現的次數為6.要求使用String類的常用方法來計算出現的次數。
任務目標:
學會分析“記錄一個子串在整串中出現的次數”任務的實現思路
根據思路獨立完成“記錄一個子串在整串中出現的次數”任務的原始碼編寫、編譯及執行。
掌握String類中常用方法的使用。

public class Demo01 {  
    public static void main(String[] args) {  
        String s= "nbaernbatynbauinbaopnba"
; String key="nba"; int count=count(s,key); System.out.println(count); } public static int count(String s, String key) { int count=0; int d=0; while((d=s.indexOf(key,d))!=-1){ s=s.substring(d+key.length()); count++; } return
count; } }

實現思路:
(1)分析任務描述可知,做此任務需要先定義兩個字串,一個表示子串,一個表示整串。
(2)要查詢子串在整串中出現的次數,可以先使用String類的contain()方法,判斷整串中是否包含子串,如果不包含,那麼不用計算,子串在整串中出現的次數一定為0。
(3)如果整串中包含了子串,那麼再具體計算出現的次數。使用String類的indexOf()方法可以獲取子串在整串中第一次出現的索引。獲取到之後,再在整串中該索引加上子串長度的位置處繼續查詢子串(可以通過String類的subString()方法將整串的剩餘部分截取出來,然後在剩餘整串中從頭查詢子串)。依次類推,通過迴圈完成查詢,直到找不到子串為止,此時indexOf()方法的返回值為-1.
(4)定義一個計數器,記錄出現的次數,在迴圈中每查到一次子串,則計數器加1.