ホームページ  >  記事  >  Java  >  Java で部分文字列の出現数を再帰的にカウントする

Java で部分文字列の出現数を再帰的にカウントする

王林
王林転載
2023-09-17 19:49:021084ブラウズ

Java で部分文字列の出現数を再帰的にカウントする

2 つの文字列 str_1 と str_2 を指定します。目的は、再帰プロシージャを使用して、文字列 str1 内の部分文字列 str2 の出現数をカウントすることです。

再帰関数は、その定義内で自分自身を呼び出す関数です。

str1 が「I know that you know that i know」の場合、str2 は「know」です。

出現回数は - 3

次のように使用します。例は理解しています。

たとえば、

input

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

output

Count of occurrences of a substring recursively are: 4

Description

の中国語訳は次のとおりです。

説明

The substring TP occurs 4 times in str1.

入力

str1 = "HiHOwAReyouHiHi" str2 = "Hi"

出力

Count of occurrences of a substring recursively are: 3

説明

の中国語訳は次のとおりです。

説明

The substring Hi occurs 3 times in str1.

# #次のプログラムでは 使用するメソッドは次のとおりです -

このメソッドでは、java の contains() メソッドを使用して、str1 内の str2 の出現を検索します。 str1 に str2 が存在する場合は true を返します。 true の場合、java の ReplaceFirst() メソッドを使用して「」に置き換え、戻り値に 1 を加算してカウントを増やすことにより、str1 から最初の一致を削除します。

  • 2 つの文字列を 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;
   }
}

出力

上記のコードを実行すると、次の出力が生成されます-

rreeee

以上がJava で部分文字列の出現数を再帰的にカウントするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。