Stringクラスの練習:サブストリングがストリング全体に現れる回数を記録します.


タイトル:1つのサブストリングが全体のストリングの中で出現する回数を記録します
列全体:「nbaernbbatynbauinbaopnba」
サブストリング:「nba」
考え方:
1.検索するサブストリングが存在するかどうか、存在する場合はその出現位置を取得します.これはindexOfで行うことができる.
2が見つかった場合は、表示された位置を記録し、残りの文字列でサブ列を検索し続けます.
残りの文字列の先頭ビットは、出現位置+サブストリングの長いである.
3,このようにしてループにより検索が完了する、見つからない場合は-1となり、検索毎にカウンタで記録する.
解題コード:
public class Demo02 {
    public static void main(String[] args) {
        //       
        String s = "nbaernbatynbauinbaopnba";
        //      
        String zi = "nba";
        int count = count(s, zi);
        //             
        if (s.indexOf("nba")!=-1) {
            System.out.println("  "+zi+"       ");
        } else {
            System.out.println("  "+zi+"        ");
        }
        System.out.println("  "+zi+"          "+count+" ");
    }
    public static int count(String s, String zi) {
        //             
        int add = 0;
        //        
        int n=1;
        //          ,     count
        if (!s.contains(zi)) {
            return add;
        }
        //                zi        
        int index = 0;
        int index1= 0;
        while ((index = s.indexOf(zi)) != -1) {
            //      ,             
            s = s.substring(index + zi.length());
            System.out.println(" "+(n++)+"       :"+(index+index1));
            //          zi                  
            index1=(index+index1+zi.length());
            add++;
        }
        return add;
    }
}