Javaで文字列のすべての可能な部分文字列を見つける方法


方法1: ネストされたループを使用する方法

public class SubstringExample {
    public static void main(String[] args) {
        String str = "abcdef";

        for (int i = 0; i < str.length(); i++) {
            for (int j = i + 1; j <= str.length(); j++) {
                System.out.println(str.substring(i, j));
            }
        }
    }
}

この方法では、2つのループを使用して文字列のすべての可能な部分文字列を生成します。外側のループは開始位置を指定し、内側のループは終了位置を指定します。それぞれの開始位置と終了位置の組み合わせに対して、substringメソッドを使用して部分文字列を取得し、出力します。

方法2: 再帰を使用する方法

public class SubstringExample {
    public static void main(String[] args) {
        String str = "abcdef";
        generateSubstrings(str, 0, "");
    }

    public static void generateSubstrings(String str, int index, String current) {
        if (index == str.length()) {
            System.out.println(current);
            return;
        }

        generateSubstrings(str, index + 1, current + str.charAt(index));
        generateSubstrings(str, index + 1, current);
    }
}

この方法では、再帰を使用してすべての可能な部分文字列を生成します。再帰関数generateSubstringsは、与えられた文字列strと現在の部分文字列current、および現在のインデックスindexを受け取ります。再帰的に関数を呼び出し、現在の文字を含む場合と含まない場合の両方の部分文字列を生成します。

これらはJavaで文字列のすべての可能な部分文字列を見つけるための2つの一般的な方法の例です。他にもさまざまなアプローチがありますが、これらの例を参考にしてみてください。