java控制台程序,要求用户输入一个范围为1-12整型数据 如果该数据不满足该要求要求用户重新输入。例如如果用户输入的数据为浮点型或者是字符型数据要求出现提示并重新输入数据~
望各位指点 最好能在代码后标注一下详细的注释~小弟刚学java多谢各位指导~

解决方案 »

  1.   

    枚举类型 enum
      

  2.   

            String s = "13";
            System.out.println(s.matches("[1-9]|[1][1|2]"));
      

  3.   

    很简单吧可以利用捕获异常来判断处理下!~ /**
         * main函数
         * 
         * @param args
         * 
         * @author kakukyowu
         */
        public static void main(String[] args) {        System.out.println("请输入1~12之间的正整数:");        try {
                Scanner sc = new Scanner(System.in);
                int i = Integer.parseInt(sc.nextLine());            if (i >= 1 && i <= 13) {
                    System.out.println("input ok!");
                } else {
                    System.out.println("error! 输入的数字不符合要求!");
                }
            } catch (Exception e) {
                System.out.println("error! 输入的不是有效数字!");
            }
        }
      

  4.   

    用到了递归,估计不是很好import java.util.Scanner;public class Test {
    public static void main(String[] args) {
    doInput();
    } public static void doInput() {
    Scanner s = new Scanner(System.in);
    try {
    while (s.hasNextLine()) {
    Integer temp = Integer.parseInt(s.nextLine());
    if (temp != null && temp >= 1 && temp <= 12) {
    System.out.println(temp);
    }
    }
    } catch (Exception e) {
    System.out.println("请重新输入(1-12)");
    doInput();
    }
    }
    }
      

  5.   

    刚才写的有点儿错误,完善一下:/**
         * main函数
         * 
         * @param args
         * 
         * @author kakukyowu
         */
        public static void main(String[] args) {        System.out.println("请输入1~12之间的正整数:");        while (true) {
                try {
                    Scanner sc = new Scanner(System.in);
                    int i = Integer.parseInt(sc.nextLine());                if (i >= 1 && i <= 12) {
                        System.out.println("input ok!");
                        break;
                    } else {
                        System.out.println("error! 输入的数字不是[1~12]范围内的,请重新输入:");
                    }
                } catch (Exception e) {
                    System.out.println("error! 输入的不是有效数字,请重新输入:");
                }
            }
        }