Javaのファイルから文字列を読み出す必要があります。それは最高得点システムです。 ファイルの各行には、「24/Kilian」のようなものが含まれています。 /の前の数字はスコアで、/の後のテキストは名前です。Javaの2D文字列配列を降順にソートしてファイルに書き込む
私の問題は、降順でスコアを並べ替えてファイルに書き戻す必要があることです。新しいスコアは古いスコアを上書きする必要があります。
私は試しましたが、正しく動作させることができません。 私はすでにファイルからスコア+名前を1行ずつ読み出すコードを書いています。
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();
}
}
したがって、このコードは、基本的に、このような2次元配列におけるスコアと名前を書き込む:
スコア[0] [0] = "24";
score [0] [1] = "Kilian";
スコア[1] [0] = "33";
スコア[1] [1] = "名前";
スコア[2] [0] = "45";
score [2] [1] = "AnotherName";
誰かが私の問題を助けてくれることを願っています。
ていますか? 2d配列の代わりに –
を使用する場合は、カスタムクラスの1次元配列を使用する必要があります。これは物事をより簡単にするでしょう。 –
宿題に2D配列を使用する必要がない場合は、HashMapを使用して、キー(スコア)に基づいてコレクションを降順で並べ替えます。常に部分文字列/索引の検索を避けるようにしてください。 'split'を使用してください。 – jiveturkey