Write a recursive method called substring
that takes as parameters a string, a start index, and an ending index, and
that returns a specified substring of the string. You are implementing a
recursive alternative to the standard substring method. As with the
standard substring method, your method should return the substring that
begins at the start index and that extends to the character just before the
ending index. For example:
substring("hello", 0, 2) should return "he"
substring("hamburger", 4, 8) should return "urge"
substring("smiles", 1, 5) should return "mile"
substring("howdy", 3, 3) should return ""
The method should throw an IllegalArgumentException if the start index is
negative or if the ending index is greater than the length of the string or
if the start index is greater than the ending index. The method should
return an empty string if the two indexes are equal. In implementing this
method, you are restricted to the following string methods:
charAt(index) returns the character at the given index
equals(other) returns whether this String is equal to the other
length() returns the length of the String
You are not allowed to construct any structured objects other than Strings
(no array, StringBuilder, Scanner, etc) and you may not use a while loop,
for loop or do/while loop to solve this problem; you must use recursion.