【发布时间】:2013-11-03 11:35:30
【问题描述】:
这是我关于 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 和 课程中使用的stack.java,下面的命令行指令会产生什么输出?
java Reader < words.txt
解决方案说输出应该是:
"I can read"
而不是
"I cannot read"
这是为什么?
谢谢:)
【问题讨论】:
-
教科书一定有错误,或者我们没有所有的细节。堆栈是 LIFO(后进先出),所以输出应该是“我无法阅读”
-
StdIn和StdOut是什么? -
StdIn 和 StdOut 只是用于文本输入/输出的普林斯顿库。
-
你还没有发布SSCCE。
-
这实际上是以前试卷中的一道题,所以我没有剩下的代码。据我所知,pop 和 push 方法都不应该改变输出,使其产生“我可以阅读”。另外,我还是新手,所以我已经习惯了事情的运作方式:)
标签: java stack push stdout stdin