java 一个字符串在另一个字符串中出现的个数

public class Test_toString {
public static void main(String[] args)
{

    String str1="abcdgihgabcgh";
    String str2="abc";
    int index=-1;
    int cnt=0;

    index=str1.indexOf(str2);
    while (-1!=index)
    {
        ++cnt;
        index=str1.indexOf( str2,index+str2.length());
    }
    System.out.printf("%d",cnt);
}

}