单独in.next和in.nextlinee;放一行什么意思,这行前面没有赋值格式

in.next()和in.nextline()有什么区别?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
in.next()和in.nextline()有什么区别?
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。
而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。鉴于以上两种方法的只要区别,同学们一定要注意next()方法和nextLine(0方法的连用,下面举个例子来说明:import java.util.Spublic class NextTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1,s2;
Scanner sc=new Scanner(System.in);
System.out.print(&请输入第一个字符串:&);
s1=sc.nextLine();
System.out.print(&请输入第二个字符串:&);
s2=sc.next();
System.out.println(&输入的字符串是:&+s1+&
&+s2); }}运行结果:请输入第一个字符串:home请输入第二个字符串:work输入的字符串是:home
work但如果把程序改一下, s1=sc.next(); s2=sc.nextLine();运行结果是:请输入第一个字符串:home请输入第二个字符串:输入的字符串是:home 可以看到,nextLine()自动读取了被next()去掉的Enter作为他的结束符,所以没办法给s2从键盘输入值。经过验证,我发现其他的next的方法,如double nextDouble()
, float nextFloat() , int nextInt() 等与nextLine()连用时都存在这个问题,解决的办法是:在每一个 next()、nextDouble()
、 nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。例如上面的程序改写为:import java.util.Spublic class NextTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1,s2;
Scanner sc=new Scanner(System.in);
System.out.print(&请输入第一个字符串:&);
s1=sc.next();
sc.nextLine();
System.out.print(&请输入第二个字符串:&);
s2=sc.nextLine();
System.out.println(&输入的字符串是:&+s1+&
&+s2); }}运行结果是:请输入第一个字符串:home请输入第二个字符串:work输入的字符串是:home
采纳率:87%
来自团队:
&quot,将被next()去掉的Enter结束符过滤掉+s2); }}运行结果:请输入第一个字符串:home请输入第二个字符串:work输入的字符串是:home
work但如果把程序改一下, s1=sc,next()方法会自动将其去掉.print(&" target="_blank">()、nextFloat()、nextInt() 等语句之后加一个nextLine()语句.next();
S请输入第一个字符串;
s1=sc:&quot:& System:&+s1+&quot.util.Spublic class NextTest { String s1,s2;输入的字符串是;).nextLine();
System,只有在输入有效字符之后.next(); sc.nextLine().nextLine();运行结果是:请输入第一个字符串:home请输入第二个字符串:输入的字符串是:home 3nextLine()自动读取了被next()去掉的Enter作为他的结束符,所以没办法给s2从键盘输入值.print(&quot.next(); s2=sc:在每一个 next();请输入第二个字符串;输入的字符串是:&quot.Scanner.out.);
Scanner sc=new Scanner(System.in);
System.out,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。简单地说.out,如double nextDouble()
, float nextFloat() , int nextInt() 等与nextLine()连用时都存在这个问题,解决的办法是; Scanner sc=new Scanner(System.in); System.out.print(&请输入第一个字符串:&); s1=sc、nextDouble()
、 <a href="http:// TODO Auto-generated method stub
String s1.print(&quot,next()查找并返回来自此扫描器的下一个完整标记、Tab键或Enter键等结束符,对输入有效字符之前遇到的空格键.out.println(&quot.println(&quot:请输入第一个字符串;请输入第二个字符串。鉴于以上两种方法的只要区别-- 百度来的--首先,next()一定要读取到有效字符后才可以结束输入,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的:work输入的字符串是:home请输入第二个字符串;);+s2);}运行结果是;+s1+&quot:&quot,同学们一定要注意next()方法和nextLine(0方法的连用,下面举个例子来说明:import java. s2=sc.nextLine(); System。经过验证,其他的next的方法.public class NextTest { public static void main(String[] args) {
/&#47。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串而nextLine()方法的结束符只是Enter键
本回答被网友采纳
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;Java中,next();和nextLine();有什么区别啊?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
Java中,next();和nextLine();有什么区别啊?
不能输入的如果说nextLine();返回长度为0的字符串;还有什么意义啊,那用in.nextLine()
举个例子,你就会明白了。如,你输入的一行:abc cde efg注意,其中abc和cde之间有空格,cde和efg之间也有空格这样,next()返回的是abc,而nexLine()返回的是整行:abc cde efg
采纳率:61%
来自团队:
第三次取的是uvw xyz明白了吧。前一个是以回车或空格为分隔符,一次取一个单词,后一个是以回车为分隔符,一次取一行。其实这些你自己编程试一试就行了,我说的你也别信,要相信自己看见的,第一次取的是abc,第二次取的是def,第二次取的是kl mno pqr st,第三次取的是ghij你用nextLine(),第一次取的是abc def ghij假如有一段文本如下:abc def ghijkl mno pqr stuvw xyz你用next()
本回答被网友采纳
就不会出现这个问题了。 因为nextDouble没有义务处理换行,要用nextLine来处理换行,这样后面的input = in.nextLine(); 时没有新行,就会等待输入.equals(&Y&)&&(input.nextLine();返回的是一个长度为0的空字符串:可以在input = in.nextLine();+input+&后,字符长度=&quotin.length()!=0)).equals(&N&quot: 1、在每次in.nextDouble();后加一句in.nextLine();));或者while (input。 2、把while判断改为while(! 后加System,只要有当前行就能返回,当前行的剩余字符是0个照样返回。 修改方法有两种;+input.length());你就能看到next()要得到有效标记才能返回值,而nextLine()则不管这个.prinln(&前&quot.out
你输入一些带空格的字符串 如 “
很好 ” nextLine()这个方法只能获取到“嗯嗯 ”这个字符串 next()则可以全部获取 个人测试了一下 ,反正是这样的结果
nextLint()一般用于IO的读取,表示获取下一行数据next()表示返回迭代的下一个元素。重复此方法返回false。较常用的iterator,resultset,可查看Java API
其他2条回答
为您推荐:
其他类似问题
java的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;查看: 670|回复: 11
String str = console.nextLine(); 这是什么意思啊?
将右边的下一行赋值给左边的字符串?
是这意思么?
具体该怎么用,解释一下,谢谢。
这个一看就是JAVA的语句
console是个Scanner类
str = console.nextLine();
表示从控制台输入一行赋给str
你找任何一本JAVA的教材或教程,上面都有的,这个是最基础的东东
把String str = console.next();试试。
console是控制台的意思,就是将控制台的下一行字符串赋给str这个字符串变量
c#中 string str = Console.ReadLine().ToString();'声明一下字符串变量str,用 Console里的方法读取字符到str里, ToString()是类型转换方法 以下几个是C#命名空间 using System.Collections.G using System.L using System.T
nextLine(); 这个一般用在IO中的方法,表示对数据的读取,一次性读取一行。 用String接收后可进行相应处理。 nextLine(); 这个方法的返回值是boolean类型的,当它还有下一行可读的时候,返回的是true,当读到最后一行的时候返回false。 也就是说
在C#中\代表转义符,如&\n&表示换行.Console.write(&\n&)不会显示文字,只是换了一行 @&\n&表示此的是\不作为转义使用,Console.write(@&\n&)将会显示出\n
import java.util.S public class testIntToString { public static void main(String[] args) { Scanner console = new Scanner(System.in); S System.out.println(&input str:&); str = console.nextLine(); boolean isInt =
^表示C++/CLI 托管语言的 引用符号。如果这样写代码还不如用C#。 可以近似的认为是一种&安全的&指针/地址引用。
应该是另一个字符串变量如: String a = &aaa&; a.length();
sc 是java.util.Scanner类的一个实例,sc.nextLine()是从控制台接受一行字符串, .trim()是去掉字符串两端的空格。trim是字符串类String中的方法。java中的in.nextline()_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
java中的in.nextline()
import java.util.S
public class Test40031{
public static void main(String []args ){
int ri, repeat,count, word,i;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();in.nextLi...
e ~~失误~ 忘说功能了~~
检验一行中 所含单词数~~如:输入2
(repeat=2)输入 Reold building
123输出 4输入Programming is fun输出3
我有更好的答案
int count=0;
for(int i=0;i&lt.split(&quot,用String中的split拆分就可以了。貌似我知道你的意思,你看看我的代码吧.util.Spublic class Test40031 { public static void main(String[] args) {
Scanner sc=new Scanner(Stemp.length.in);
String s=)额……说实在的,你的问题有些模糊;
System。如果你要 “ 检验一行中 所含单词数”,可以补充一点关于这个类的功能说明?我只能说我还是没有看懂你的程序意思,尽管你说明了它是干什么的.i++) {
if(temp[i].println(&quot!
System.out.println(&please input a line data:&quot.nextLine();
String [] temp=s.length()!=0) {
count++;you input &quot
采纳率:36%
2!你是怎么操作的啊?就是怎么去输入的1.你只使用一个in.nextLine();输入正确的啊;的时候结束?把你输入不正确的操作说出来;&#92;0&quot.如果你不想用现成的话,自己去写了,取string.cahrAt(i)==&quot
为您推荐:
其他类似问题
java的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;【问题分析】
必要的知识:in.nextLine();不能放在in.nextInt();代码段后面否则in.nextLine();会读入"\n"字符,但"\n"并不会成为返回的字符因为nextInt();接收一个整型字符,不会读取\n,nextline();读入一行文本,会读入"\n"字符,但"\n"并不会成为返回的字符那么问题就在于for循环中的三个输入等待中,前两个是字符串(学校名称、校长姓名)最后一个是整型(建校时间),在第一次循环时并没有什么问题,但当循环进入第二次时,第一次循环输入的班级数目(假设为2),我们输入的是"2\n",nextInt();扫描了2这个值并返回(没有读取"\n"字符),而第二次循环一开始的nextLine();接收了上一个循环最后输入的"\n"字符,然而"\n"并不会成为返回字符,所以看起来有一种“跳过”的假象。
【解决方案】
接下来我们来看看解决方案方案1:(不推荐)
将Scanner in = new Scanner(System.in);放入循环体,因为只循环一次的话并不存在问题,所以可以解决“跳过”的问题。方案2:
解决在nextInt();后的nextLine();会接收"\n"的问题,可以在他们中间加一个in.nextLine();语句来接收这个"\n"。方案3:(可接收含空格的字符串,后文有说)
必要的知识:next();这个函数会扫描从有效字符起到空格,Tab,回车等结束字符之间的内容并作为String返回。nextLine();这个函数在你输入完一些东西之后按下回车则视为输入结束,输入的内容将被作为String返回。next();这个函数与之不同在于,next();什么都不输入直接敲回车不会返回,而nextLine()即使不输入东西直接敲回车也会返回。再举个例子,输入" & abc def gh\n",next();会返回abc,而nextLine();会返回 & abc def gh\n,我们看到的是 & abc def gh//附上代码
import java.util.*;public class testScanner{public static void main(String[]args){Scanner in = new Scanner(System.in);String str = in.nextLine();
//String str = in.next();可自行将上一行代码更换为此行代码尝试System.out.println(str);}}
所以把代码中的nextLine();换成next();便可以解决“跳过”问题。(因为next();不把上个循环的最后一个"\n"看成有效字符)
阅读(...) 评论()

我要回帖

更多关于 hasnextline什么意思 的文章

 

随机推荐