黑马程序员技术交流社区

标题: 一个Scanner中的nextInt()和nextLine()的小问题 [打印本页]

作者: 梦魇0023    时间: 2016-9-27 21:42
标题: 一个Scanner中的nextInt()和nextLine()的小问题
在实现字符窗口的输入时,我们都使用Scanner。
但是我在自己写程序时候,发现用Scanner实现字符串的时候,在i = nextInt()之后再使用s = nextLine(),就会产生录入了空的字符串;
我查了一些资料知道了原因:
  
因为nextInt()读取\r(回车)之前的内容作为int,遗留了\r,nextLine()自动读取了被nextInt()没有去掉的Enter作为他的结束符,所以没办法给下一个String键盘录入解决办法是:在第一个nextInt()语句后加一个nextLine()语句,将nextInt()遗留的Enter结束符过滤掉如:
int i=sc.nextInt();
sc.nextLine();
String s = sc.nextLine();
作者: zhaokun    时间: 2016-9-27 22:41
因为nextInt()录入之后,你敲回车会产生\n和\r   nextLine( )遇到\n机会结束所以会产生这些问题
作者: yu244934256    时间: 2016-9-27 23:44
不是next() 和 nextLine()的区别嚒???
作者: Dreamkele    时间: 2016-9-28 00:11
个人感觉后期直接用nextLine()就好了




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