我想判断输入的类型是否是Int类型,如果不是提示重新输入具体代码如下:
import java.util.*;
public class testOne {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入要输入的人数:");
//int renShu = input.nextInt();
int renShu=0;
                     //renShu = input.nextInt(); 如何能实现输入的不是数字类型提示输入错误请重新输入?
                     //也就是如何能判断自己输入的类型,不满足所要求输入的条件时,进行报错并提示重新输入
if(!input.hasNextInt()) {
System.out.println("输入错误请重新输入:");
renShu = input.nextInt();
}
int age[] =  new int[renShu];
String[] name = new String[renShu];

for (int i=0;i<age.length;i++) {
System.out.print("请输入第" +(i+1) + "位客人的姓名");
name[i] = input.next();
System.out.print("请输入第" +(i+1) +"位客人的年龄");
age[i] = input.nextInt();
}

}
}

解决方案 »

  1.   

     Pattern pattern = Pattern.compile("[\\d]*");
            boolean flag = pattern.matcher("9").matches();
            if(flag){
                // 整形
                System.out.println(flag);
            }else{
                // 字符串
                System.out.println(flag);
            }
      

  2.   

    看看:public class IsInteger {
        public static void main (String[] args){        String in="ww";
            System.out.println(isInteger(in));
        }
          public static boolean isInteger(String s){
                boolean ko=true;
                if(s==null||s.equals(""))
                    return false;
                else{
                    for(int i=0;i<s.length()&&ko;i++){
                        if(s.charAt(i)>'9'||s.charAt(i)<'0')
                            ko=false;
                    }
                    return ko;
                }        }
    }
      

  3.   

    你的代码输入异常,就无法输入了;最好捕捉一下,refer to:
    import java.util.*;public class testOne {
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    // int renShu = input.nextInt();
    int renShu = 0;
    // renShu = input.nextInt(); 如何能实现输入的不是数字类型提示输入错误请重新输入?
    // 也就是如何能判断自己输入的类型,不满足所要求输入的条件时,进行报错并提示重新输入
    while (true) {
    try {
    System.out.print("请输入要输入的人数:");
    renShu = Integer.valueOf(input.nextLine());
    break;
    } catch (Exception e) {
    System.out.println("输入错误请重新输入。");
    }
    }
    int age[] = new int[renShu];
    String[] name = new String[renShu]; for (int i = 0; i < age.length; i++) {
    System.out.print("请输入第" + (i + 1) + "位客人的姓名");
    name[i] = input.nextLine(); 
    while (true) {
    try {
    System.out.print("请输入第" + (i + 1) + "位客人的年龄");
    age[i] = Integer.valueOf(input.nextLine());
    break;
    } catch (Exception e) {
    System.out.println("年龄输入错误请重新输入。");
    }
    }
    }
            System.out.println("Successfully completed....");
    }
    }
      

  4.   

    谢谢各位指导。问题是解决了 但是其中有几条语句还是不明白
    其中  renShu = Integer.valueOf(input.nextLine());  //这句话是什么意思?Integer.valueOf
    还有catch (Exception e) {    }  //这个catch和后面的(Exception e )是什么意思?
      

  5.   

    try {
    }catch (Exception e){}这条语句是什么意思?
      

  6.   

    算了,异常别用了,使用正则验证吧import java.util.*;public class testOne { public static boolean isNumeric(String s) {
    if ((s != null) && (s != ""))
    return s.matches("^[0-9]*$");
    else
    return false;
    }

    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int renShu = 0;
    while (true) {
    System.out.print("请输入要输入的人数:");
    String inputStr = input.nextLine();
    if (isNumeric(inputStr)) {
    renShu = Integer.valueOf(inputStr);
    break;
    } else {
    System.out.println("输入错误请重新输入。");
    }
    }
    int age[] = new int[renShu];
    String[] name = new String[renShu]; for (int i = 0; i < age.length; i++) {
    System.out.print("请输入第" + (i + 1) + "位客人的姓名");
    name[i] = input.nextLine();
    }
    System.out.println("Successfully completed....");
    }
    }
      

  7.   

    贴错了,还有部分:import java.util.*;public class testOne { public static boolean isNumeric(String s) {
    if ((s != null) && (s != ""))
    return s.matches("^[0-9]*$");
    else
    return false;
    } public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int renShu = 0;
    while (true) {
    System.out.print("请输入要输入的人数:");
    String inputStr = input.nextLine();
    if (isNumeric(inputStr)) {
    renShu = Integer.valueOf(inputStr);
    break;
    } else {
    System.out.println("输入错误请重新输入。");
    }
    }
    int age[] = new int[renShu];
    String[] name = new String[renShu]; for (int i = 0; i < age.length; i++) {
    System.out.print("请输入第" + (i + 1) + "位客人的姓名");
    name[i] = input.nextLine();

    while (true) {
    System.out.print("请输入第" + (i + 1) + "位客人的年龄");
    String inputStr = input.nextLine();
    if (isNumeric(inputStr)) {
    age[i] = Integer.valueOf(inputStr);
    break;
    } else {
    System.out.println("年龄输入错误请重新输入。");
    }
    }
    }
    System.out.println("Successfully completed....");
    }
    }
      

  8.   


    是啊,LZ还没懂java的异常机制呢