package lectures.iterator_scanning;
import util.annotations.WebDocuments;
@WebDocuments({"Lectures/IteratorScanning.pptx", "Lectures/IteratorScanning.pdf", "Videos/IteratorScanning.avi"})
public class ReusingForwardReverseUpperCasePrinter {
static final int MAX_CHARS = 5;
static char[] upperCaseLetters = new char[MAX_CHARS];
static int numberOfUpperCaseLetters = 0;
public static void main(String[] args) {
printAndStore(args[0]);
printReverse();
}
public static void printAndStore(String s) {
System.out.println("Upper Case Letters:");
printAndStore(new AnUpperCaseIterator(s));
}
public static void printAndStore(CharIterator charIterator) {
while (charIterator.hasNext()) {
char inputChar = charIterator.next();
System.out.print(inputChar);
storeChar(inputChar);
}
System.out.println();
}
public static void storeChar(char c) {
if (numberOfUpperCaseLetters == MAX_CHARS) {
System.out
.println("Too many upper case letters. Terminating program. ");
System.exit(-1);
}
upperCaseLetters[numberOfUpperCaseLetters] = c;
numberOfUpperCaseLetters++;
}
public static void printReverse() {
System.out.println("Upper Case Letters in Reverse:");
for (int index = numberOfUpperCaseLetters - 1; index >= 0; index--) {
System.out.print(upperCaseLetters[index]);
}
}
}