首頁 >Java >java教程 >在Java中遞歸地計算子字串出現的次數

在Java中遞歸地計算子字串出現的次數

王林
王林轉載
2023-09-17 19:49:021196瀏覽

在Java中遞歸地計算子字串出現的次數

給定兩個字串 str_1 和 str_2。目標是使用遞歸過程計算字串 str1 中子字串 str2 的出現次數。

遞歸函數是在其定義中呼叫自身的函數。

如果str1 是"I know that you know that i know",str2 是"know"

出現次數為- 3

##讓我們透過範例來理解。

例如

輸入

str1 = "TPisTPareTPamTP", str2 = "TP";

#輸出

Count of occurrences of a substring recursively are: 4

Explanation

的中文翻譯為:

解釋

The substring TP occurs 4 times in str1.

輸入

str1 = "HiHOwAReyouHiHi" str2 = "Hi"

輸出

Count of occurrences of a substring recursively are: 3

Explanation

的中文翻譯為:

解釋

The substring Hi occurs 3 times in str1.

#在下面程式中使用的方法如下 -

在這種方法中,我們將使用java 中的contains() 方法搜尋str2 在str1 中的出現。如果str2存在於str1中,則傳回true。如果為 true,請使用 java 中的 ReplaceFirst() 方法將其替換為“”,然後將返回值加 1 以增加計數,從而從 str1 中刪除第一個匹配項。

  • 取兩個字串當str1和str2。

  • 遞歸方法subsrting_rec(String str, String sub) 接受字串str 及其子字串sub 並傳回sub 在str 中出現的次數.

  • #檢查str.contains(sub)是否為true。 ( str 有 sub )

  • 如果為 true,則使用 str.replaceFirst(sub,””) 將第一次出現的 sub 替換為“”。

  • 在 subsrting_rec(String str, String sub) 的遞歸呼叫中執行此動作。

  • 在所有遞歸結束時,所有傳回值的總和為 count .

  • 列印結果。

範例

 即時示範

public class recursive{
   public static void main(String args[]){
      String str1 = "TPisTPareTPamTP", str2 = "TP";
      System.out.println("Count of occurrences of a substring recursively are: "+subsrting_rec(str1, str2));
   }
   static int subsrting_rec(String str, String sub){
      if (str.contains(sub)){
         return 1 + subsrting_rec(str.replaceFirst(sub, ""), sub);
      }
      return 0;
   }
}

#輸出

如果我們執行上面的程式碼,它將產生以下輸出-

Count of occurrences of a substring recursively are: 4

以上是在Java中遞歸地計算子字串出現的次數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除