Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 为什么扫描仪中缺少输入的最后一个元素?_Java_Input_Stdin_Delimiter - Fatal编程技术网

Java 为什么扫描仪中缺少输入的最后一个元素?

Java 为什么扫描仪中缺少输入的最后一个元素?,java,input,stdin,delimiter,Java,Input,Stdin,Delimiter,我使用IntelliJ,扫描仪有问题。输出中缺少输入的最后一个元素。有什么想法吗 输入:1,2,3 输出:1、2 public static void main(String[] args) { Scanner sc = new Scanner(System.in).useDelimiter(", "); while (sc.hasNext()) { System.out.print(sc.nextInt()); } } 因为扫描仪没有读取系统。在中:s

我使用IntelliJ,扫描仪有问题。输出中缺少输入的最后一个元素。有什么想法吗

输入:
1,2,3

输出:
1、2

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in).useDelimiter(", ");
    while (sc.hasNext()) {
        System.out.print(sc.nextInt());
    }
}

因为扫描仪没有读取
系统。在
中:stdin流未关闭,仍在等待令牌结束(下次出现
,“
)或流结束

您还需要将
sc.hasNext()
更改为
sc.hasNextInt()
,因为您使用了
sc.nextInt()

然后您可以在命令行上执行程序,它应该正确显示3:

echo -n "1, 2, 3" | java MyScannerExample
然而:

echo "1, 2, 3" | java MyScannerExample
不会显示3,因为输入字符串实际上是
“1,2,3\n”
,所以最后一个标记是
“3\n”
,它不是整数