假设我正在导入包含行的文件。我想通过递归输出序列的尾部,然后是序列的头部来反转这个文件。这可能使用BufferedReader吗?或者我首先需要将这些行导入列表?我必须用递归来做。
例如,我有一个包含以下内容的文件:
Hi My Name Is Mark
我希望它在另一个文件中以相反的顺序输出:
Mark Is Name My Hi
我认为我已经正确地创建了递归方法,虽然它编译得很好,但是在程序运行后输出文件是空的。
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
答案 0 :(得分:2)
必须使用递归
这是一个递归解决方案:
由于这是作业,我留给你了解如何将其转换为实际的Java代码。
答案 1 :(得分:1)
而不是直接给你解决方案,你可能不想在头尾方面考虑这个问题。从线条的角度考虑它,然后阅读答案和讨论this SO question。您可以应用相同的技术。
答案 2 :(得分:0)
一定要将所有内容读入LinkedList
,然后在其上抛出递归。只有,Collection Framework对于这类工作来说非常麻烦。