brainfrz icon

Untitled

brainfrz | PRO | 10/12/15 12:57:52 PM UTC | 0 ⭐ | 810 👁️ | Never ⏰ | []
Java |

5.04 KB

|

None

|

0 👍

/

0 👎

import java.util.Scanner;
 
public class Prompt {
    final private static String DEFAULT_INT_PROMPT = "Please enter an integer";
 
 
 
    public static int integer( String prompt ) {
        Scanner user_input = new Scanner(System.in);
        int number;
        boolean validInput;
 
        do {
            System.out.print(prompt + ": ");
 
            try {
                number = Integer.parseInt(user_input.next());
                validInput = true;
            } catch (NumberFormatException e) {
                number = 0;
                System.out.print("Input wasn't an integer. ");
                validInput = false;
            }
        } while (!validInput);
 
        return number;
    }
 
    public static int integer() {
        return integer(DEFAULT_INT_PROMPT);
    }
 
 
    public static int intGreaterThan( String prompt, int min, String error ) {
        Scanner user_input = new Scanner(System.in);
        int number;
 
        do {
            if (min == Integer.MIN_VALUE) {
                System.out.print(prompt + ": ");
            }
            else {
                System.out.print(prompt + " (greater than " + min + "): ");
            }
 
            try {
                number = Integer.parseInt(user_input.next());
 
                if (number < min)
                {
                    System.out.print(error + " ");
                }
            } catch (NumberFormatException e) {
                number = min - 1;
                System.out.print("Input wasn't an integer. ");
            }
        } while (number < min);
 
        return number;
    }
 
    public static int intGreaterThan( int min, String error ) {
        return intGreaterThan(DEFAULT_INT_PROMPT, min, error);
    }
 
    public static int intGreaterThan( int min ) {
        return intGreaterThan(min, "Input out of range.");
    }
 
    public static int wholeNumber( String error ) {
        return intGreaterThan(0, error);
    }
    
    public static int wholeNumber() {
        return wholeNumber("That's a negative number.");
    }
 
    public static int postiveInt( String error ) {
        return intGreaterThan(1, error);
    }
    
    public static int postiveInt() {
        return postiveInt("That's a negative number.");
    }
 
 
    public static int intLessThan( String prompt, int max, String error ) {
        Scanner user_input = new Scanner(System.in);
        int number;
 
        do {
            if (max == Integer.MAX_VALUE) {
                System.out.print(prompt + ": ");
            }
            else {
                System.out.print(prompt + " (less than " + max + "): ");
            }
 
            try {
                number = Integer.parseInt(user_input.next());
 
                if (number > max)
                {
                    System.out.print(error + " ");
                }
            } catch (NumberFormatException e) {
                number = max + 1;
                System.out.print("Input wasn't an integer. ");
            }
        } while (number > max);
 
        return number;
    }
 
    public static int intLessThan( int max, String error ) {
        return intLessThan(DEFAULT_INT_PROMPT, max, error);
    }
 
    public static int intLessThan( int max ) {
        return intLessThan(max, "Input out of range.");
    }
 
 
    public static int intInRange( String prompt, int min, int max, String minError,
                                  String maxError ) {
        Scanner user_input = new Scanner(System.in);
        int number;
 
        do {
            if (min == Integer.MIN_VALUE && max == Integer.MAX_VALUE) {
                number = integer(prompt);
            }
            else if (min == Integer.MIN_VALUE) {
                number = intLessThan(prompt, max, maxError);
            }
            else if (max == Integer.MAX_VALUE) {
                number = intGreaterThan(prompt, min, minError);
            }
            else {
                System.out.print(prompt + " (between " + min + " and " + max + "): ");
            }
 
            try {
                number = Integer.parseInt(user_input.next());
 
                if (number < min) {
                    System.out.print(minError + " ");
                }
                else if (number > max) {
                    System.out.print(maxError + " ");
                }
            } catch (NumberFormatException e) {
                number = min - 1;
                System.out.print("Input wasn't an integer. ");
            }
        } while (number < min || number > max);
 
        return number;
    }
 
    public static int intInRange( int min, int max, String minError, String maxError ) {
        return intInRange(DEFAULT_INT_PROMPT, min, max, minError, maxError);
    }
 
    public static int intInRange( int min, int max, String error ) {
        return intInRange(min, max, error, error);
    }
 
    public static int intInRange( int min, int max ) {
        return intInRange(min, max, "Input out of range.");
    }
}

Comments