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

请指教!JAVA 中 判断是不是数字 的两段 代码 有什么区别??

System.out.println("输入:");
//String num1 = sc.next();
/* while(!num1.matches("\\d+"))
{
System.out.println("输入的不是数字,请重新输入");
num1 = sc.next();;
}
System.out.println("你好!");
*/
第2个
if(sc.hasNextInt()==true)
{
int j=sc.nextInt();
}
else
{
System.out.println("输入错误!!!");
}

他们都是可以判断 是否为数字! 那他们的区别在与那里 ??本人刚开始学JAVA 有很多不懂的地方需要大家帮助 谢谢!

------解决方案--------------------
不对哦 \\d+ 表示有一个或者 N 个数字!

但是 Java 中的 int 最多只有 10 位数字,因此,这种判断是不正确的。

PS:这个还没有考虑负数!

建议使用:

try {
Integer.parseInt(input);
return true;
} catch (Exception e) {
return false;
}
------解决方案--------------------
不是返回值,是判断有没有NumberFormatException,就是Integer.parseInt(input);这句能不能执行成功,如果不能执行异常。

try catch (Exception e)捕获异常