Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的nextLine返回意外结果_Java_File_Io - Fatal编程技术网

Java中的nextLine返回意外结果

Java中的nextLine返回意外结果,java,file,io,Java,File,Io,此代码未按预期工作: int x=in.nextInt(); String y=in.nextLine(); System.out.println(y); 但是程序在得到x的值后终止 但是,如果我写这篇文章,它就会起作用: String y=in.nextLine(); int x=in.nextInt(); System.out.println(y); 我遗漏了什么?我猜您的输入类似于“12abc” 调用nextInt()后,stdin缓冲区中还剩下一个换行符。对nextLine(

此代码未按预期工作:

int x=in.nextInt();
String y=in.nextLine();
System.out.println(y);
但是程序在得到x的值后终止

但是,如果我写这篇文章,它就会起作用:

String y=in.nextLine();
int x=in.nextInt();    
System.out.println(y);

我遗漏了什么?

我猜您的输入类似于“12abc”

调用
nextInt()
后,stdin缓冲区中还剩下一个换行符。对
nextLine()
的调用将使用它,而字符串
y
包含
“\n”
。当你打印它时,它看起来是空白的,让你觉得
nextLine()
从未被调用过。您认为应该得到的输入仍保留在stdin缓冲区中


通过调用
nextLine()
两次并丢弃第一个结果来清除换行符。

检查程序的输出是否存在异常-几乎可以肯定存在异常。如果不知道您的输入是什么,就不可能自信地回答您的问题。请向我们显示您的输入。在没有看到错误的情况下,返回的下一个令牌很可能不是
int
,因此会在.nextLine()中抛出一个例外添加此行-
紧靠此行下方-
int x=in.nextInt()在第一段中。我想这取决于谁在做“期待”。