这是我关于SO的第一个问题。 这可能是一个愚蠢的问题,但到目前为止我还没有弄清楚。
考虑下面的 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 和 类(class)中使用的 Stack.java,以下命令行指令会产生什么输出?
java Reader < words.txt
解决方案表明输出应该是:
"I can read"
而不是
"I cannot read"
这是为什么?
谢谢:)
最佳答案
正确的输出是“我无法阅读”。这应该是那本书中的一个错字。
无论什么输入被插入堆栈,在弹出操作期间都会以相反的顺序出现(不是任何新单词)
关于Java 程序输出(堆栈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19752488/