import java.io.*; /** * The Input is a class for reading user input * from the command line. It includes methods for reading a single char, * int, and float. In addition to reading primitive data * types, the class can read a line of input as a String. * * @author Petri Mikael Gerdt * @version 1.0 (May 12, 2003) */ public class Input { public static String readInputLine() { BufferedReader input; String buffer; input = new BufferedReader(new InputStreamReader(System.in)); try { buffer = input.readLine(); } catch (IOException ioe) { System.out.println("Error: can't read input"); buffer = null; } return buffer; } public static double readDouble() { String s = readInputLine(); Double retval = null; if (s != null) { while (retval == null) { try { retval = Double.valueOf(s); } catch (NumberFormatException nfe) { System.out.println("Error: can't parse a double from string " + s); System.out.print("Enter a new value (example: 3.14): "); s = readInputLine(); } } } return retval.doubleValue(); } public static float readFloat() { String s = readInputLine(); Float retval = null; if (s != null) { while (retval == null) { try { retval = Float.valueOf(s); } catch (NumberFormatException nfe) { System.out.println("Error: can't parse a float from string " + s); System.out.print("Enter a new value (example: 3.14): "); s = readInputLine(); } } } return retval.floatValue(); } public static int readInt() { String s = readInputLine(); Integer retval = null; if (s != null) { while (retval == null) { try { retval = Integer.valueOf(s); } catch (NumberFormatException nfe) { System.out.println("Error: can't parse a int from string " + s); System.out.print("Enter a new value (example: 3): "); s = readInputLine(); } } } return retval.intValue(); } public static char readChar() { String s = readInputLine(); Character retval = null; if (s != null) { while (retval == null) { if (s.length() == 1) retval = new Character(s.charAt(0)); else { System.out.println("Error: input is a string, not a character: " + s); System.out.print("Enter a new value (example: a): "); s = readInputLine(); } } } return retval.charValue(); } }