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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

此程序可以这样解决
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int a = sc.nextInt();sc.nextLine();
System.out.println("请输入任意字符串:");
String str = sc.nextLine();
System.out.println(a+"----"+str);

原因是你在录入nextLine()的时候接收的是回车接收以后程序结束 如果按照的我方法去做的话 就说明会有一个进行接收了 下面的就可以正常使用了或者以下代码也可实现
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int a = sc.nextInt();
System.out.println("请输入任意字符串:");
String str = sc.next();
System.out.println(a+"----"+str);
原理是 把Line去掉了 说明不需要接收空格 这样就不会出现刚才的问题了

回复 使用道具 举报
nextLine()换成next()
回复 使用道具 举报
nextLine()方法识别的是\r和\n
还有next()方法  识别的是空格,有时间你要自己试一下里边的区别,都是常见的典型,以后面试可能会被问的
回复 使用道具 举报
必须的!
nextInt()和nextLine()方法冲突;
因为nextInt()是以回车键结束,回车键相当于\r\n;而这个方法只会读到整数,对于\r\n不会被读到,此时\r\n就会变为下一行,被nextLine()所读到,
而nextLine()方法遇到\r\n就会直接结束,所以输完整数之后,nextLine方法就业结束了
回复 使用道具 举报
nextLine()方法遇到\r\n就结束了
回复 使用道具 举报
这个基础班好像听老师讲过了,被你这么一说,哎呀  我没听课啊
回复 使用道具 举报
疯狂的麦克斯 发表于 2016-9-18 01:34
nextLine可以接收任意字符,包括空格,next()遇到空格就结束了

这样哈,又涨姿势了。
回复 使用道具 举报
我也遇到过这个问题,是因为:nextLine()是键盘录入字符串的方法,可以接收任意类型 ,通过\r\n,只要遇到\r\n就证明一行结束
回复 使用道具 举报
Fate_stay 发表于 2016-9-18 23:11
我也遇到过这个问题,是因为:nextLine()是键盘录入字符串的方法,可以接收任意类型 ,通过\r\n,只要遇到\r\n ...

...不错不错
回复 使用道具 举报
只知道不可以这样用 有两种解决方法   第一  再创建一个Scanner 就行  第二忘记了  出现这个是因为在输出10之后又个\r\n 换行  所以就出现这种结果
回复 使用道具 举报
只知道不可以这样用 有两种解决方法   第一  再创建一个Scanner 就行  第二忘记了  出现这个是因为在输出10之后又个\r\n 换行  所以就出现这种结果
回复 使用道具 举报
next和nextLine各有特点next遇到空格就挂了 nextLine遇到回车结束,所以我们在进行调用的时候需要看是否有回车与空格符
回复 使用道具 举报
lixuelin 发表于 2016-9-19 22:42
next和nextLine各有特点next遇到空格就挂了 nextLine遇到回车结束,所以我们在进行调用的时候需要看是否有回 ...

恩恩额
回复 使用道具 举报
changfa 发表于 2016-9-19 22:40
只知道不可以这样用 有两种解决方法   第一  再创建一个Scanner 就行  第二忘记了  出现这个是因为在输出10 ...

恩恩
回复 使用道具 举报

恩恩额,学习了
回复 使用道具 举报
因为nextLine输入字符串时以\r\n为标记来录入一行,遇到\r\n就结束了,当你输入整数后回车,就相当于录入了\r\n但是nextInt只提取\r\n前的,所以\r\n被nextLine捕获,录入字符串就结束了
回复 使用道具 举报
活到老学到老。。
回复 使用道具 举报
虽然next不存在上面所说的问题  但是 next遇到空格就停止录入了  还是都用nextline比较好
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马