Java程序输出(堆栈)

Java程序输出(堆栈),java,stack,push,stdout,stdin,Java,Stack,Push,Stdout,Stdin,这是我的第一个问题。 这可能是一个愚蠢的问题,但到目前为止我还没有弄明白 考虑下面的程序Reader.java: public class Reader { public static void main(String [ ] args) { Stack<String> stack = new Stack <String>(); while (!StdIn.isEmpty ()) { stac

这是我的第一个问题。 这可能是一个愚蠢的问题,但到目前为止我还没有弄明白

考虑下面的程序Reader.java:

   public class Reader {

      public static void main(String [ ] args) {

      Stack<String> stack = new Stack <String>();

         while (!StdIn.isEmpty ()) {

            stack.push(StdIn.readString());
         }

         while (!stack.isEmpty()) {

            StdOut.print(stack.pop() + " ");
         }
         StdOut.println();
     }
   }
假设程序已使用文件StdIn.java、StdOut.java和 如本课程中使用的Stack.java,以下命令行指令会产生什么输出

java Reader < words.txt
而不是

"I cannot read"
为什么会这样


谢谢:)

正确的输出是您得到的“我无法阅读”。那本书应该是打字错误


任何一个输入被推到堆栈中的内容,在弹出操作中都会以相反的顺序出现(不是任何新词)

教科书中一定有错误,或者我们没有所有的细节。堆栈是后进先出的,所以输出应该是“我看不懂”什么是
StdIn
StdOut
?StdIn和StdOut只是用于文本输入/输出的普林斯顿库。你没有发布。这实际上是以前试卷中的问题,所以我没有剩下的代码。据我所知,pop和push方法都不应该改变输出,从而产生“我可以阅读”。而且,我还是新来的,所以我已经习惯了事情的运作:)没错,我就是这么想的。我问过我的几个朋友,他们都同意答案不可能是“我能读”。然而,这个问题来自之前的一份试卷,其中规定“我不能读”得1分,“我能读”得2分。@EfVonZee有时在评分方案上会有错误,你必须使用一些常识。鉴于此处提供的详细信息,输出不可能是“我可以阅读”。)谢谢:)我以为这是不可能的。。。很高兴我没有疯。
"I can read"
"I cannot read"