/**
* TestReverse: This program takes input from the user, and
* prints out the reverse of each line of input. The program
* stops when the user enters "quit"
*/
import java.io.*;
public class TestReverse {
public static void main (String[] args) throws IOException {
BufferedReader getit;
getit = new BufferedReader
(new InputStreamReader (System.in));
// Prompt user to enter text.
System.out.println ("Enter lines of text.");
System.out.println ("Type quit to stop.");
System.out.flush ();
// Read first line before loop.
String text = getit.readLine();
// Loop until the user enters quit
while (true) {
// Leave loop if word was quit
if (text.equals("quit"))
break;
// Print out reverse of word
System.out.println (reverse(text));
// Read next line of text
text = getit.readLine();
}
System.out.println ("End of program.");
}
/*
* reverse: return value is same as parameter "original"
* reversed.
*/
public static String reverse (String original) {
String reversed = ""; // where we build the reversed string
// where are we in original?
int pos = original.length() - 1;
// for each character ...
while (pos >= 0) {
// "write it down"
reversed = reversed + original.charAt(pos);
pos -= 1; // more of "for each character"
}
return reversed;
}
}
In this version of the reverse method, we take each character from the original string, starting from character 0 and going to the last character in the original string. We insert each character to the beginning of the new reversed string.
/**
* TestReverse2: This program takes input from the user, and
* prints out the reverse of each line of input. The program
* stops when the user enters "quit"
*/
import java.io.*;
public class TestReverse2 {
public static void main (String[] args) throws IOException {
BufferedReader getit;
getit = new BufferedReader
(new InputStreamReader (System.in));
// Prompt user to enter text.
System.out.println ("Enter lines of text.");
System.out.println ("Type quit to stop.");
System.out.flush ();
// Loop until the user enters quit
while (true) {
// Read a line of text
String text = getit.readLine();
// Leave loop if word was quit
if (text.equals("quit"))
break;
// Print out reverse of word
System.out.println (reverse(text));
}
System.out.println ("End of program.");
}
/*
* reverse: return value is same as parameter "original"
* reversed.
*/
public static String reverse (String original) {
String reversed = ""; // where we build the reversed string
// where are we in original?
int pos = 0;
// for each character ...
while (pos < original.length()) {
reversed = original.charAt(pos) + reversed;
pos += 1;
}
return reversed;
}
}
Enter lines of text. Type quit to stop. Hello olleH Montreal laertnoM See you later! !retal uoy eeS quit tiuq quit End of program.