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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangyinhui 中级黑马   /  2013-4-3 19:25  /  1467 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yangyinhui 于 2013-4-4 17:35 编辑

   public static void main(String[] args) {
               
                Scanner scanner=new Scanner(System.in);
                //int i= scanner.nextInt();输入2321312321432134会抛异常
                String line=scanner.nextLine();//输入2321312321432134不会抛异常
                scanner.close();
                //System.out.println(i);
                System.out.println(line);
}}
为什么一个会抛异常一个不会,输入的都是很大的数字为什么用String就不会抛异常?新手求解释?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

6 个回复

倒序浏览
一个是字符串一个是int型的数据!.nextInt()是从键盘输入一个int型数据,它当然是有范围的,nextLine()是从键盘读取一行字符串!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
//int i= scanner.nextInt();输入2321312321432134会抛异常.这里调用netInt()输入的超过了int范围-2147483648~2147483647,所以会报异常
回复 使用道具 举报
int类型是有范围控制的, int为一种数据类型,范围[-2^31 , 2^31 -1] 即 [-2147483648,2147483647]。会抛出异常
String 是字符串 不管多大的数字都可以看成字符串,不会抛出异常,定义变量。
回复 使用道具 举报
第一,int的数值类型没有那么大,你输入那么多数字肯定不对
第二,你用String标示的,你输入的就不是int类型的数字了,而是字符串了,你随便输入多少都可以
你不要以为都是阿拉伯数字就一定就是int类型的

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
明白了,原来是nextLine()是从键盘读取一行字符串,谢谢
回复 使用道具 举报
若还有问题,继续追问; 没有的话,尽量及时将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马