黑马程序员技术交流社区

标题: nextLine和nextInt 键盘录入的问题 [打印本页]

作者: 莫莫莫    时间: 2016-7-16 11:16
标题: nextLine和nextInt 键盘录入的问题
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吗?为什么这时候,第二个还可以录入?
小白好糊涂啊?求指点一下。

作者: longforus    时间: 2016-7-16 11:56
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);

作者: longforus    时间: 2016-7-16 11:57
int i=nextInt();//回车还在缓冲区   只读取了int 没有读/n
作者: empty3717    时间: 2016-7-16 12:08
已复制粘贴存在自己的资料里了,谢谢。
作者: 莫莫莫    时间: 2016-7-16 14:39
longforus 发表于 2016-7-16 11:56
Scanner sc=new Scanner(System.in);System.out.println("请输入第一个");

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

谢谢啦,学到了!
作者: 地狱蓝枫    时间: 2016-7-17 19:17
给力,学习了!
作者: q123123    时间: 2016-7-17 21:50
学习了.......
作者: Huyaal    时间: 2016-7-17 21:58
学习一下
作者: 一叶知秋来    时间: 2016-7-17 22:01
学习一下!!




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