I am attempting to learn Java and am having a time of it. I am wanting to write a program that will allow a user to input number...then output them in reverse order. Is someone would be so kind as to look at it and provide me with suggestions or hints...or for those who are extremely kind hearted could tweak it for me and repost. On behalf of all those who recieve assistance here, "Thanks in advance!"
//****************************************************** // main method reads a string input by the user and // calls recursive methods that print string in //reverse // and return reversed string //****************************************************** public static void main(String[] args) throws IOException { InputStreamReader isr = new InputStreamReader (System.in); BufferedReader stdin = new BufferedReader (isr);
System.out.println("Enter a String"); String input = stdin.readLine(); System.out.print("The input in reverse is --> ");
rev(input); System.out.println();
// String strrev = retrev(input); // System.out.println(); // System.out.println("The returned string is --> " + // strrev);
} // **************************************************** // recursive method that prints the reverse of a string // public static void rev (string r) { String strRemaining = "1"; String str = String.valueOf(r); int iLen = str.length(); //get length for indexing substrings
if (iLen <= 1) System.out.println(str);
else { //save the x-1 characters of string strRemaining = str.substring(0, (iLen - 1)); //put the last character into substring str = str.substring((iLen - 1), iLen); //print last character System.out.print(str); //revert string back to number r = Integer.valueOf(strRemaining).intValue(); //call itself recursively Reverse(r); } //***************************************************** // recursive method that returns the reverse of a string // public static String retrev(String r) // { // } } }
1. The line // public static void rev (string r) is commented. Why? This is you method definition
2. Where is the Method Reverse(String) ?
3. If you are really really lazy here's the solution:
publicstatic String rev(String r) {
if (r == null || r.length < 2) //this only works because Java won't look at the 2nd part if the first part results true
return r; //to create a copy of r just write return new String(r)
elsereturn rev(r.substring(1)) + r.charAt(0);
}