Java程序输出(堆栈)

时间:2013-11-03 11:35:30

标签: 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 ()) {

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

         while (!stack.isEmpty()) {

            StdOut.print(stack.pop() + " ");
         }
         StdOut.println();
     }
   }

然后给出一个文本文件(words.txt)具有以下内容:

read
cannot
I

鉴于该程序已成功使用StdIn.java,StdOut.java和 在课程中使用的Stack.java,由以下命令行指令产生什么输出?

java Reader < words.txt

解决方案说输出应该是:

"I can read"

而不是

"I cannot read"

为什么会这样?

谢谢:)

1 个答案:

答案 0 :(得分:2)

正确的输出就是“我看不懂”。这应该是那本书中的拼写错误。

什么输入被推入堆栈,在弹出操作期间将以相反的顺序出现(不是任何新词)