2

假设我正在导入一个包含行的文件。我想通过递归输出序列的尾部,然后是序列的头部来反转这个文件。这可能使用 BufferedReader 吗?还是我首先需要将这些行导入列表?我必须用递归来做。

例如,我有一个包含以下内容的文件:

你好
我的
姓名
是
标记

我希望它在另一个文件中以相反的顺序输出:

标记
是
姓名
我的
你好

我想我已经正确地创建了递归方法,虽然它编译得很好,但是程序运行后输出文件是空的。

public void Reverse(BufferedReader br, PrintWriter pw) {
    try {
        String headLine = br.readLine();
        if (headLine != null) {
            Reverse(br, pw);
            pw.println(br.readLine());
        }
        pw.println(headLine);      
    } //try
4

3 回答 3

2

它必须使用递归

这是一个递归解决方案:

  1. 从文件中读取一行;
  2. 递归地反转文件的其余部分;
  3. 写出在步骤 1 中读取的行。

由于这是家庭作业,我留给您弄清楚如何将其转换为实际的 Java 代码。

于 2012-04-27T11:57:44.230 回答
1

您可能不想直接从头和尾的角度考虑这一点,而不是直接给您解决方案。用线条来思考它,然后阅读这个 SO question的答案和讨论。您可以应用相同的技术。

于 2012-04-27T12:04:03.957 回答
0

无论如何,将所有内容读入 aLinkedList然后对其进行递归。只是,Collection Framework 对这类工作来说是一个非常繁琐的搭配。

于 2012-04-27T12:01:24.893 回答