Java-在文档中反转文本

时间:2015-10-10 00:17:51

标签: java arrays

我正在尝试编写一个程序,它将读取文件,复制文件并反转文本 - 这意味着文档中的最后一个单词现在是第一个。移动到输出文件时,我创建的方法不会反转。

public static ArrayList<String> fileLines(String filename) throws FileNotFoundException {
    ArrayList<String> lines = new ArrayList<String>();
    Scanner fileRead = new Scanner(new File(filename));
    while (fileRead.hasNextLine()) {
        String line = fileRead.nextLine();
        lines.add(line);
    }
    fileRead.close();
    return lines;
}

public static void writeLinesReverse(ArrayList<String> lines, String filename) throws FileNotFoundException {
    PrintWriter fileWrite = new PrintWriter(new File(filename));
    for (int i = lines.size() - 1; i > -1; i--) {
        fileWrite.write(lines.get(i));
    }
    fileWrite.close();
}
}

2 个答案:

答案 0 :(得分:0)

为什么不用Collections.reverse来反转arraylist

也许是这样的

//reverse list
Collections.reverse(lines);

for (String s: lines) {
   //write to file
}

Docs

答案 1 :(得分:0)

//反转整行

    while (fileRead.hasNextLine()) {
        String line = fileRead.nextLine();
        lines.add(new StringBuffer(line).reverse().toString());
    }

输入: 堆栈溢出

输出: wolfrevo kcatS

如果要反转每行中单词的内容,

1)首先阅读

2)使用split()函数获取行中的单个单词

3)在每个单词上创建StringBuffer并将其反转,如上所示。

如果您遵循这种方法,

输出

kcatS wolfrevo