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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

yangxiong

  • 黑马币:23

  • 帖子:33

  • 精华:0

..........................................
回复 使用道具 举报
录入的时候是根据回车来确定是否录入完毕,当你输入nextInt()的值回车是nextLint()同时捕捉到了回车,解决方法有两种:第一种,重新创建一个Scanner对象来接收录入的nextLine()的值.第二种方法:统一用nextLine()来录入一个整数类型字符串,然后Integer来将整数字符串转成int类型
回复 使用道具 举报
  
回复 使用道具 举报
统一用nextLine()吧,nextInt()也就是在学习的前期用用,后面基本不用的
回复 使用道具 举报
创建两个Scanner对象,一个接受整数,一个接受字符串
回复 使用道具 举报
因为我们在输入1后,会按换行键,所以实际上录入的是1和\r\n , 所以sc.nextLine()是录入字符串的方法,遇到\r\n 就结束了
回复 使用道具 举报
亲,我刚写了一篇关于这个的帖子,愿意及解决方案可以看一下,简单的有四种解决方法,你如果有其他方法可以给我留言额
回复 使用道具 举报
每周答题在哪里啊?还有怎么快速获得25技术分啊
回复 使用道具 举报
Scanner nsc = new Scanner(System.in);  用来录入整数
int number = nsc.nextInt();
Scanner csc = new Scanner(System.in);  用来录入字符串
String str = csc.nextLine();
回复 使用道具 举报
主要原因:就是那个换行符号的问题。因为你先输入了一个整数,然后按了回车,而回车其实是\n,所以它把\n赋给了它,而\n为null,所以你看不见。
怎么解决:
方法一:先获取一个数值后,再创建一个新的键盘录入对象获取字符串。
方法二:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。
回复 使用道具 举报
真是高手在民间,应该好好向你们学习!!!
回复 使用道具 举报
Amor~ 中级黑马 2016-4-19 20:20:18
32#
录入整数后按回车键  系统默认的\r\n使得录入字符时结束了   解答:全部录入字符,后面在转成你需要的整数
回复 使用道具 举报
只能分开使用,nextInt()已经获取数据,后面的就无法获取了
回复 使用道具 举报
方法1:直接键盘输入
回复 使用道具 举报
方法1 键盘输入
方法2 转换成toString类型
回复 使用道具 举报
Erry 中级黑马 2016-4-23 22:06:43
36#
其实吧,现阶段你只要记住他们分开用就好了!别混合用
回复 使用道具 举报
nextLine读到了换行符号,就运行结束啦
回复 使用道具 举报
Java中nextLine()自动读取了被nextInt()去掉的Enter作为他的结束符,所以没办法给nextInt(从键盘输入值。经本人验证,其他的nextXxx()的方法,如:nextDouble(), nextFloat() nextInt() 等与nextLine()连用时都存在这个问题!!!
解决的办法是:在每一nextDouble()、nextFloat()、nextInt()等语句之后加一个nextLine()语句!
将被next()去掉的Enter结束符过滤掉
方法如下:

  1. <div style="text-align: justify;"><font color="#333333" face="宋体" size="2"><span style="line-height: 28px;"><b>Scanner sc=new Scannsr(System.in);</b></span></font></div><div style="text-align: justify;"><font color="#333333" face="宋体" size="2"><span style="line-height: 28px;"><b>System.out.println("请输入一个数");</b></span></font></div><div style="text-align: justify;"><font color="#333333" face="宋体" size="2"><span style="line-height: 28px;"><b>int i=</b></span></font><b style="color: rgb(51, 51, 51); font-family: 宋体; font-size: small; line-height: 28px;">nextInt();</b></div><div style="text-align: justify;"><font color="#333333" face="宋体" size="2"><span style="line-height: 28px;"><b>sc.nextLine();</b></span></font></div><div style="text-align: justify;"><b style="color: rgb(51, 51, 51); font-family: 宋体; font-size: small; line-height: 28px;">System.out.println("请输入一个字符串");</b></div><div style="text-align: justify;"><b style="color: rgb(51, 51, 51); font-family: 宋体; font-size: small; line-height: 28px;">String s=sc.nextLine();</b></div><div style="text-align: justify;"><b style="color: rgb(51, 51, 51); font-family: 宋体; font-size: small; line-height: 28px;">......</b></div><div style="text-align: justify;"></div>
复制代码



回复 使用道具 举报
自带回车键`代表结束
回复 使用道具 举报
nextline()默认是以\r\n结束,在录入字符串的时候,回车一下,是的只能nextint(),有值,但是nextline就没有值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马