Java怎么判断输入的书是不是整型

Java怎么判断输入的数是不是整型,

Scanner input = new Scanner(System.in);
int a = input.nextInt();
怎么判断输入的a是不是整型,不是的话报错
怎么让这个程序在第一次输入a的地方输入非整型如w的时候报错,谢谢
import java.util.*;
public class w{
public static void main(String[] args)
{System.out.println("请输入操作数a,b的整型值,然后输入运算符"+" 加+ "+" 减- "+ " 乘* "+"除 / "+"平方~");
System.out.println("**********************************************************************" );
Scanner input = new Scanner(System.in);
Scanner input1 = new Scanner(System.in);
System.out.println("请输入一个整型的数a:" );
int a = input.nextInt();
System.out.println("请输入一个整型的数b:" );
int b = input.nextInt();
System.out.println("请输入符号,包括加+,减-,乘*,除/,平方~:" );
String s=input1.nextLine();
char p = s.charAt(0);int c;
if(p=='+') {c=a+b;
System.out.println( a+"+"+b+"="+c);}
else if(p == '-')
{c= a-b;
System.out.println( a+"-"+b+"="+c);}
else if(p == '*')
{c=a*b;System.out.println( a+"*"+b+"="+c); }
else System.out.println("没有注册这个运算符号");
}
}

java中使用Integer整数类来进行转换,如果没有异常,则是整数,如下例子:

 /**
  * ä»Žé”®ç›˜ å¾—到 ä¸€ä¸ªæ•´æ•°
  * @return
  */
 public static int getIntFromKeyboard() {
  int num = 0;
  Scanner input = new Scanner(System.in);
  System.out.println("请输入一个整数:");
  try {
   num = input.nextInt();
  } catch (Exception e) {
   System.out.println("您所输入的数不是整数!");
   return getIntFromKeyboard();
  }

  return num;
 }
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-25
用异常输入错误还会继续执行;写一个判断输入的方法
//判断输入是否为整型
public int jude() {
int id=0;
do {
flag=false;
if (sc.hasNextInt()) {
id = sc.nextInt();
} else {
flag=true;
System.out.println("您输入的格式有误!请重新输入!");
sc.next();
}
} while (flag);
return id;
}
第2个回答  2009-11-01
根据输入的字符判断是否在对应的ascii内
第3个回答  推荐于2017-10-04
package com.lili.test;

import java.util.Scanner;

/**
* 最简单的两数运算,没有异常。
* @author: lili
* @date : Nov 2, 2009 7:33:42 PM
*/
public class SimpleCalculator {

private static String operators = "+-*/";

public static void main(String[] args) throws Exception {

System.out.println("**********************************************************************");
int a = SimpleCalculator.getIntFromKeyboard();
int b = SimpleCalculator.getIntFromKeyboard();
String operator = SimpleCalculator.getOperatorFromKeyboard();
int c=SimpleCalculator.Compute(a, b, operator);
System.out.println("**********************************************************************");
System.out.println(""+a+operator+b+"="+c);

}

/**
* 从键盘 得到 一个整数
* @return
*/
public static int getIntFromKeyboard() {
int num = 0;
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数:");
try {
num = input.nextInt();
} catch (Exception e) {
System.out.println("您所输入的数不是整数!");
return getIntFromKeyboard();
}

return num;
}

/**
* 从键盘 得到 一个运算符
* @return
*/
public static String getOperatorFromKeyboard() {
String operator = "";
Scanner input = new Scanner(System.in);
System.out.println("请输入符号,包括加+,减-,乘*,除/:");
try {
operator = input.next();
if (operator != null && operator != "") {
if (SimpleCalculator.operators.contains(operator)) {
return operator;
} else {
System.out.println("您所输入的不是有效运算符 或 没有注册这个运算符号!");
return getOperatorFromKeyboard();
}
} else {
System.out.println("您所输入的不是有效运算符 或 没有注册这个运算符号!");
return getOperatorFromKeyboard();
}

} catch (Exception e) {
System.out.println("您所输入的不是有效运算符 或 没有注册这个运算符号!");
return getOperatorFromKeyboard();
}
}

/**
* 运算处理中心
*
* @param a
* @param b
* @param operator
* @return
* @throws Exception
*/
public static int Compute(int a, int b, String operator) throws Exception {
int c = 0;

if (!SimpleCalculator.operators.contains(operator)) {
throw new Exception("您所输入的不是有效运算符!");
}
if ("+".equals(operator)) {
c = a + b;
} else if ("-".equals(operator)) {
c = a - b;
} else if ("*".equals(operator)) {
c = a * b;
} else if ("/".equals(operator)) {
c = a / b;
}
return c;
}

}本回答被提问者采纳
第4个回答  2009-11-01
用hasNextInt()函数。
import java.util.Scanner;

public class test1 {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
if(input.hasNextInt()){
int a = input.nextInt();
}
else{
System.err.println("error");
}
}
}
相似回答