A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 党传才 中级黑马   /  2012-4-13 00:12  /  5884 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

3 个回复

倒序浏览
有两个。。一个对字符进行判断。。看看是不是都是数字。。另一个就是看能不能强转为Integer类型。。可以强转就是。。。
回复 使用道具 举报
如果你用的是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("不是数字");
}

回复 使用道具 举报
好像记得有个instanceof()用于判断是不是它的类货子类的实例,也可以用Integer的paseInt()看能不能对数据进行转换,你自己去试哈看吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马