Write a recursive method called repeat that accepts a string s and an integer n as parameters and that returns concatenated together n times. For example, repeat("hello", 3) returns "hellohellohello", and repeat("ok", 1) returns "ok", and repeat("bye", 0) returns "". String concatenation is an expensive operation, so for an added challenge try to solve this problem while performing fewer than n concatenations.
package recursion;
public class RepeatString {
public static String repeatString(String string, int value) {
// throw exception if the value less than zero
if (value < 0)
throw new IllegalArgumentException();
// return empty string if the value is zero
if (value == 0)
return "";
// recursive call on str
String str = repeatString(string, value / 2);
if (value % 2 == 1)
return string + str + str;
return str + str;
}
// driver method
public static void main(String[] args) {
System.out.println(repeatString("kishore ", 7));
}
}
Output:
kishore kishore kishore kishore kishore kishore kishore