黑马程序员技术交流社区

标题: Java中如何判断用户输入的是否为数字 [打印本页]

作者: 党传才    时间: 2012-4-13 00:12
标题: Java中如何判断用户输入的是否为数字
本人新手一枚,做个东西。遇到个问题。代码如下:
        System.out.print("请输入您的帐户:" + "\t");
         // 获得用户输入的帐号
         int userName = scan.next();
         System.out.println("请输入您的密码:" + "\t");
         // 获得用户输入的密码
         String userPwd = scan.next();
如何写个if判断userName是否为数字。另外,如果userName在声明时是个String型又该如何判断。
知道的高手请说一下啊。请不舍赐教,万分感谢~~~~~

作者: 郑苑东    时间: 2012-4-13 07:58
有两个。。一个对字符进行判断。。看看是不是都是数字。。另一个就是看能不能强转为Integer类型。。可以强转就是。。。
作者: 李彬彬    时间: 2012-4-13 09:25
如果你用的是scanner类的话, 你首先要看看这个类中方法的返回类型。
首先你编译代码时出错了
int userName = scan.next(); 这行代码你是定义的int类型,但是next()返回的是String类型。应该改为scan.nextInt();    这样就不需要你用if判断了,因为在程序运行时,如果你输入字符的话,会直接报错java.util.InputMismatchException  输入类型不一致。
如果你声明String类型的话,可以用异常来捕获类型转换,
代码如下:
try{
    int num = Intger.parseInt(userName);
}catch(NumberFormatException e){
    System.out.println("不是数字");
}


作者: 黑马-刘昌文    时间: 2012-4-13 10:43
好像记得有个instanceof()用于判断是不是它的类货子类的实例,也可以用Integer的paseInt()看能不能对数据进行转换,你自己去试哈看吧!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2