1. 程式人生 > >java String類-獲取一個字串在另一個字串中出現的次數

java String類-獲取一個字串在另一個字串中出現的次數

<pre name="code" class="html">//另一種方法
class  StringTest3_1
{
	public static void main(String[] args) 
	{
		String str="hgdfjdssgjdhgfusdkkhdsgfkkshfkkbjsdhh";
		String substr="kk";
		sop(stringsub(str,substr));
		System.out.println("Hello World!");
	}
	
	public static int stringsub(String str,String substr)
	{
		int index=0;
		int count=0;
		int fromindex=0;
		while((index=str.indexOf(substr,fromindex))!=-1)
		{
			//str=str.substring(index+substr.length());
			fromindex=index+substr.length();
			count++;
		}
		return count;
	}

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

/*獲取一個字串str1在另一個字串str2中出現在的次數。思路:獲取str1的長度。然後從str2的開頭字元開始比較。例如:str1="abc"; str2="agthabclllabcjukabcjhk";str1的長度為3,則先取str2中的子字串agt,發現不相同,則以第二個字元作為開頭,取3個字元,則為gth,發現仍不相等,依次查詢下去。 */
class StringTest3 {
      public static void main(String[] args) 
      {
          System.out.println("Hello World!");
          sop(String_count("abcdcdefdcghfcddccdf","dc"));
          }
      public static int String_count(String str,String substr)
      {
          int count=0;
          int str_len=str.length();
          int substr_len=substr.length();
          if(!str.contains(substr))
               return count;
          for (int i=0;i<str_len-substr_len ;i++ )
          {
               if (substr.equals(str.substring(i,i+substr_len)))
               {
                      count++;
               }
          }
          return count;
      }
      public static void sop(Object obj)
      {
          System.out.println(obj);
      }
}