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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Scanner sc=new Scanner(System.in);System.out.println("请输入第一个");

int i=nextInt();
System.out.println("请输入第二个");
String s=nextLine();
System.out.println(i+j);
为什么第二个字符串不能录入?而
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个");

String s1=nextLine();
System.out.println("请输入第二个");
String s2=nextLine();
System.out.println(i+j);


第二个字符串却可以录入,
解释的是,第一个数输入之后敲了Enter,相当于录入了\r\n
而nextLine遇到\r\n即判定录入结束;
但是第二个代码,第一个字符串输入完之后,不是也敲了一个Enter吗?为什么这时候,第二个还可以录入?
小白好糊涂啊?求指点一下。

8 个回复

倒序浏览
Scanner sc=new Scanner(System.in);System.out.println("请输入第一个");

int i=nextInt();//回车还是缓冲区
System.out.println("请输入第二个");
String s=nextLine();//只读到了还在缓冲区的第一行的回车就结束了,所以读不到
System.out.println(i+j);
为什么第二个字符串不能录入?而
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个");

String s1=nextLine();//把第一行全部都读掉了
System.out.println("请输入第二个");
String s2=nextLine();//把第二行也全部都读掉了
System.out.println(i+j);

评分

参与人数 1黑马币 +5 收起 理由
莫莫莫 + 5 很给力!有心啦!谢谢啦!

查看全部评分

回复 使用道具 举报 1 0
int i=nextInt();//回车还在缓冲区   只读取了int 没有读/n
回复 使用道具 举报
empty3717 来自手机 中级黑马 2016-7-16 12:08:02
板凳
已复制粘贴存在自己的资料里了,谢谢。
回复 使用道具 举报
longforus 发表于 2016-7-16 11:56
Scanner sc=new Scanner(System.in);System.out.println("请输入第一个");

int i=nextInt();//回车还是缓 ...

谢谢啦,学到了!
回复 使用道具 举报
给力,学习了!
回复 使用道具 举报
学习了.......
回复 使用道具 举报
Huyaal 中级黑马 2016-7-17 21:58:30
8#
学习一下
回复 使用道具 举报
学习一下!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马