【发布时间】:2017-04-26 18:48:40
【问题描述】:
所以我必须从 Java 文件中读出一个字符串。这是一个高分系统。 文件的每一行都包含类似这样的内容:“24/Kilian”。 /前面的数字是分数,/后面的文字是名字。
现在,我的问题是我必须对分数进行降序排序并将它们写回文件中。新分数应该会覆盖旧分数。
我试过了,但我不能让它正常工作。 我已经写了一些代码,从文件中逐行读取分数+名称。
public static void sortScores() {
String [][]scores = null;
int i = 1;
try (BufferedReader br = new BufferedReader(new FileReader("score.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
scores[i][0] = line.substring(0, line.indexOf("/"));
scores[i][1] = line.substring(line.indexOf("/"), line.length());
i++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
因此,这段代码基本上将分数和名称写入二维数组,如下所示:
分数[0][0] = "24";
score[0][1] = "基利安";
分数[1][0] = "33";
score[1][1] = "姓名";
分数[2][0] = "45";
score[2][1] = "另一个名字";
我希望有人可以帮助我解决我的问题。
【问题讨论】:
-
你知道你的代码引发了
NullPointerException吗? -
您应该使用自定义类的一维数组,而不是二维数组。这会让事情变得容易得多。
-
“我无法正常工作”还有什么更具体的吗?
-
@jnbbender 你假设没有两个玩家得分相同?
-
你的索引必须从 0 开始,现在是 1
标签: java arrays string sorting