我正在尝试编写一个程序,它将读取文件,复制文件并反转文本 - 这意味着文档中的最后一个单词现在是第一个。移动到输出文件时,我创建的方法不会反转。
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();
}
}
答案 0 :(得分:0)
为什么不用Collections.reverse
来反转arraylist
也许是这样的
//reverse list
Collections.reverse(lines);
for (String s: lines) {
//write to file
}
答案 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