Implement a SubstringGenerator (class) that generates all substrings of a string
ID: 3686491 • Letter: I
Question
Implement a SubstringGenerator (class) that generates all substrings of a string recursively. For example, the substrings of the string “rum” are the seven strings
“rum”, “ru”, “r”, “um”, “u”, “m”, “”
Hint: First enumerate all substrings that start with the first character. There are n of them if the string has length n. Then enumerate the substrings of the string that you obtain by removing the first character.
Here is what your output should look like after your project is completed. (The order of your substrings is not important, as long as your generator produces all substrings correctly).
Substrings of "ab"
Actual: '' 'b' 'a' 'ab'
Expected: '' 'b' 'a' 'ab'
Substrings of "abc"
Actual: '' 'c' 'b' 'bc' 'a' 'ab' 'abc'
Expected: '' 'c' 'b' 'bc' 'a' 'ab' 'abc'
Substrings of "abc123"
Actual: '' '3' '2' '23' '1' '12' '123' 'c' 'c1' 'c12' 'c123' 'b' 'bc' 'bc1' 'bc12' 'bc123' 'a' 'ab' 'abc' 'abc1' 'abc12' 'abc123'
Expected: '' '3' '2' '23' '1' '12' '123' 'c' 'c1' 'c12' 'c123' 'b' 'bc' 'bc1' 'bc12' 'bc123' 'a' 'ab' 'abc' 'abc1' 'abc12' 'abc123'
Explanation / Answer
Program which Generates SubStrings using Recursive Method
SubStringRecursive.java
package org.students;
import java.util.Scanner;
public class SubStringRecursive {
// Declaring Static variable
static String in = null;
public static void main(String[] args) {
// Getting the String From the user.
System.out.print("Enter the String(Without Spaces) ::");
Scanner sc = new Scanner(System.in);
in = sc.next();
System.out.println("The SubStrings for '"+in+"' are:");
// Calling the method
substrings(0, 1);
}
// Method which contains code to generates Substrings
static void substrings(int start, int end) {
if (start == in.length() && end == in.length()) {
return;
} else {
if (end == in.length() + 1) {
substrings(start + 1, start + 1);
} else {
System.out.println(in.substring(start, end));
substrings(start, end + 1);
}
}
}
}
______________________________________________________________________________________________
Output:
Enter the String(Without Spaces) ::hello
The SubStrings for 'hello' are:
h
he
hel
hell
hello
e
el
ell
ello
l
ll
llo
l
lo
o
_________________________________________________________________________________________
Output2:
Enter the String(Without Spaces) ::abc
The SubStrings for 'abc' are:
a
ab
abc
b
bc
c
_______________________________________________________________________________________________
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.