Java 为什么扫描仪中缺少输入的最后一个元素?
我使用IntelliJ,扫描仪有问题。输出中缺少输入的最后一个元素。有什么想法吗 输入: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
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”
,它不是整数