方法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つの一般的な方法の例です。他にもさまざまなアプローチがありますが、これらの例を参考にしてみてください。