import java.util.*; public class Reverse { public static void main(String [] args) { System.out.println(reverse1("Hello!")); System.out.println(reverse2("Hello!")); System.out.println(reverse2(reverse1("Hello!"))); int s, e; String w = new String(); Scanner in = new Scanner(System.in); System.out.print("Enter a string: "); w = in.nextLine(); System.out.print("Enter start index: "); s = in.nextInt(); System.out.print("Enter end index: "); e = in.nextInt(); System.out.println(reverse3(w, s, e)); } public static String reverse1(String s) { if(s.length() == 1) return s; return reverse1(s.substring(1)) + s.charAt(0); } public static String reverse2(String s) { String sN = new String(); for(int i = 0; i < s.length(); i++) sN = s.charAt(i) + sN; return sN; } public static String reverse3(String s, int start, int end) { return s.substring(0, start) + reverse1(s.substring(start, end)) + s.substring(end); } }