日期:2014-05-20  浏览次数:20921 次

求java中,循环输入整数,当输入非整数时,怎样忽略
import java.util.*;
class A
{
  public static void main(String[] args)
  {  
  int i = 0;
  Scanner sc = new Scanner(System.in);
  do{
  try
  {
  int x = sc.nextInt();
  }
  catch(Exception e)
  {
  System.out.printf("出错");
  }
  i ++;
  }while(i<6); 
  }
}
怎样通过异常处理忽略输入非整数

------解决方案--------------------
do{
try
{
int x = sc.nextInt();
}
catch(Exception e)
{
System.out.printf("出错");
throw new RunTimeException("not a int number",e);
continue;
}

------解决方案--------------------
可以对输入的字符进行判断再接收,如果非要求的忽略,想要的则接收……
------解决方案--------------------
探讨

可以对输入的字符进行判断再接收,如果非要求的忽略,想要的则接收……

------解决方案--------------------
Java code
public static void main(String[] args) {
        int i = 0;
        Scanner sc = new Scanner(System.in);
        do {
            try {
                String str = sc.nextLine();
                int x = Integer.parseInt(str);//靠异常来处理的,你也可以用正则表达式判断啥的判断是不是可以转为整数
                System.out.println(x);
            } catch(Exception e) {
                System.out.printf("出错");
                continue;
            }
            i ++;
        } while(i<6);
    }

------解决方案--------------------
Java code

Scanner sc = new Scanner(System.in);
        while(true){
            System.out.println("请输入一个整数");
            String str = sc.next();
            if(str.matches("[0-9]*")){
                System.out.println("您很聪明输入的整数是:" + Integer.parseInt(str));
            } else{
                System.err.println("看清除了要输入的是整数");
            }
        }

------解决方案--------------------
我只会最本的方法,转换成int判断值对不对不就行了