Java中,next();和nextLine();有什么区别啊?
如果说nextLine();返回长度为0的字符串,那用in.nextLine();还有什么意义啊。不能输入的,大虾赐教!...
如果说nextLine();返回长度为0的字符串,那用in.nextLine();还有什么意义啊。不能输入的,大虾赐教!
展开
2013-03-31
展开全部
in.nextLine();返回的是一个长度为0的空字符串:
可以在input = in.nextLine(); 后加
System.out.prinln("前"+input+"后,字符长度="+input.length());
你就能看到
next()要得到有效标记才能返回值,而nextLine()则不管这个,只要有当前行就能返回,当前行的剩余字符是0个照样返回。
修改方法有两种:
1、在每次in.nextDouble();后加一句in.nextLine();就不会出现这个问题了。
因为nextDouble没有义务处理换行,要用nextLine来处理换行,这样后面的input = in.nextLine(); 时没有新行,就会等待输入。
2、把while判断改为while(!input.equals("Y"));或者while (input.equals("N")&&(input.length()!=0));
可以在input = in.nextLine(); 后加
System.out.prinln("前"+input+"后,字符长度="+input.length());
你就能看到
next()要得到有效标记才能返回值,而nextLine()则不管这个,只要有当前行就能返回,当前行的剩余字符是0个照样返回。
修改方法有两种:
1、在每次in.nextDouble();后加一句in.nextLine();就不会出现这个问题了。
因为nextDouble没有义务处理换行,要用nextLine来处理换行,这样后面的input = in.nextLine(); 时没有新行,就会等待输入。
2、把while判断改为while(!input.equals("Y"));或者while (input.equals("N")&&(input.length()!=0));
2018-07-30 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
next()一定要读取到有效字符后才可以结束输入,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假如有一段文本如下:
abc def ghij
kl mno pqr st
uvw xyz
你用next(),第一次取的是abc,第二次取的是def,第三次取的是ghij
你用nextLine(),第一次取的是abc def ghij,第二次取的是kl mno pqr st,第三次取的是uvw xyz
明白了吧。前一个是以回车或空格为分隔符,一次取一个单词,后一个是以回车为分隔符,一次取一行。
其实这些你自己编程试一试就行了,我说的你也别信,要相信自己看见的,哈哈。
abc def ghij
kl mno pqr st
uvw xyz
你用next(),第一次取的是abc,第二次取的是def,第三次取的是ghij
你用nextLine(),第一次取的是abc def ghij,第二次取的是kl mno pqr st,第三次取的是uvw xyz
明白了吧。前一个是以回车或空格为分隔符,一次取一个单词,后一个是以回车为分隔符,一次取一行。
其实这些你自己编程试一试就行了,我说的你也别信,要相信自己看见的,哈哈。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
举个例子,你就会明白了。
如,你输入的一行:abc cde efg
注意,其中abc和cde之间有空格,cde和efg之间也有空格
这样,next()返回的是abc,
而nexLine()返回的是整行:abc cde efg
如,你输入的一行:abc cde efg
注意,其中abc和cde之间有空格,cde和efg之间也有空格
这样,next()返回的是abc,
而nexLine()返回的是整行:abc cde efg
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
nextLint()一般用于IO的读取,表示获取下一行数据
next()表示返回迭代的下一个元素。重复此方法返回false。较常用的iterator,resultset,可查看Java API
next()表示返回迭代的下一个元素。重复此方法返回false。较常用的iterator,resultset,可查看Java API
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询