【发布时间】:2021-11-15 17:38:15
【问题描述】:
我尝试了 StackOverflow 上其他线程建议的多个解决方案,但我没有找到解决方案。我正在尝试使用 Java 读取 .txt 文件并从最大到最小对内容进行排序。这是我的 .txt 文件包含的内容:
16° C
15° C
18° C
13° C
17° C
19° C
21° C
20° C
16° C
这是我尝试过的:
import java.io.*;
import java.util.*;
public class temperatur {
public static void main(String[] args) throws IOException {
BufferedReader reader = null;
PrintWriter outputStream = null;
ArrayList<String> rows = new ArrayList<String>();
try {
reader = new BufferedReader(new FileReader("temp.txt"));
outputStream = new PrintWriter(new FileWriter("tempout.txt"));
String file;
while ((file = reader .readLine()) != null) {
rows.add(file);
}
Collections.sort(rows);
String[] strArr= rows.toArray(new String[0]);
for (String cur : strArr)
outputStream.println(cur);
} finally {
if (reader != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
}
【问题讨论】:
-
你试过什么?你能展示你的代码吗?
-
那你有什么问题?文件阅读?排序?你能展示一下你目前的方法吗?
-
你能添加输出文件的样子吗?
-
可以跳过创建额外
String[]的额外步骤。只需遍历您的rows列表。 -
另外,您可能会按字母数字排序 - 将“1°”、“5°”和“100°”添加到您的输入文件中,看看您是否获得了预期的结果。并查看stackoverflow.com/a/1694770/13447 以反转订单。