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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在实现字符窗口的输入时,我们都使用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();

3 个回复

正序浏览
个人感觉后期直接用nextLine()就好了
回复 使用道具 举报
不是next() 和 nextLine()的区别嚒???
回复 使用道具 举报
因为nextInt()录入之后,你敲回车会产生\n和\r   nextLine( )遇到\n机会结束所以会产生这些问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马