Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I need this to be recursive Implement a SubstringGenerator (class) that generates all substrings of a string recursively. I looked at other answers but they

I need this to be recursive Implement a SubstringGenerator (class) that generates all substrings of a string recursively.

I looked at other answers but they didnt do it right.

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, if 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'

import java.util.ArrayList; /** * This class generates substrings of a string. */ public class SubstringGenerator { public static ArrayList getSubstrings(String word) { //this is the value you will return ArrayList result = new ArrayList(); //come up with a base case first // Below here is the recursive case // Form a simpler word by removing the first character // Generate all substrings of the simpler word // This is where you will make a recursive call // You can store the result from this temporary call in // your results ArrayList // Add all strings that start with word.charAt(0) // You will need a loop here // Return all substrings return result; } } -------------------------------------------------------------

This is the tester class

import java.util.ArrayList; public class SubstringTester { public static void main(String[] args) { ArrayList substrings = SubstringGenerator.getSubstrings("ab"); System.out.println("Substrings of \"ab\""); System.out.print("Actual: "); for (String s : substrings) { System.out.print("'" + s + "' "); } System.out.println(); System.out.println("Expected: '' 'b' 'a' 'ab'"); System.out.println(); substrings = SubstringGenerator.getSubstrings("abc"); System.out.println("Substrings of \"abc\""); System.out.print("Actual: "); for (String s : substrings) { System.out.print("'" + s + "' "); } System.out.println(); System.out.println("Expected: '' 'c' 'b' 'bc' 'a' 'ab' 'abc'"); System.out.println(); substrings = SubstringGenerator.getSubstrings("rum"); System.out.println("Substrings of \"rum\""); System.out.print("Actual: "); for (String s : substrings) { System.out.print("'" + s + "' "); } System.out.println(); System.out.println("Expected: '' 'm' 'u' 'um' 'r' 'ru' 'rum'"); System.out.println(); System.out.println("Substrings of \"abc123\""); substrings = SubstringGenerator.getSubstrings("abc123"); System.out.print("Actual: "); for (String s : substrings) { System.out.print("'" + s + "' "); } System.out.println(); System.out.println("Expected: '' '3' '2' '23' '1' '12' '123' 'c' 'c1' 'c12' 'c123' 'b' 'bc' 'bc1' 'bc12' 'bc123' 'a' 'ab' 'abc' 'abc1' 'abc12' 'abc123'"); } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Databases Illuminated

Authors: Catherine Ricardo

2nd Edition

1449606008, 978-1449606008

More Books

Students also viewed these Databases questions

Question

Whats My Comfort with Change?

Answered: 1 week ago

Question

What is the relationship with the failed Enron Corporation and SOX?

Answered: 1 week ago