Добрый день!
У меня есть проект (игра), который должен быть представлен завтра утром. Но я обнаружил ошибку при записи в высокие оценки. Я пытаюсь создать текстовый файл и написать ИМЯ СЧЕТА в порядке убывания, используя оценку в качестве основы.
НА ПРИМЕРЕ:
SCORE NAME RANK
230 God
111 Galaxian
10 Gorilla
5 Monkey
5 Monkey
5 Monkey
ЗАМЕТЬ ТАКЖЕ ТАКЖЕ
Мой код выглядит следующим образом:
public void addHighScore() throws IOException{
boolean inserted=false;
File fScores=new File("highscores.txt");
fScores.createNewFile();
BufferedReader brScores=new BufferedReader(new FileReader(fScores));
ArrayList vScores=new ArrayList();
String sScores=brScores.readLine();
while (sScores!=null){
if (Integer.parseInt(sScores.substring(0, 2).trim()) < score && inserted==false){
vScores.add(score+"\t"+player+"\t"+rank);
inserted=true;
}
vScores.add(sScores);
sScores=brScores.readLine();
}
if (inserted==false){
vScores.add(score+"\t"+player+"\t"+rank);
inserted=true;
}
brScores.close();
BufferedWriter bwScores=new BufferedWriter(new FileWriter(fScores));
for (int i=0; i<vScores.size(); i++){
bwScores.write((String)vScores.get(i), 0, ((String)vScores.get(i)).length());
bwScores.newLine();
}
bwScores.flush();
bwScores.close();
}
Но если я введу три числа: 60 Мэнни, файл будет выглядеть так:
60 Manny
230 God
111 Galaxian
10 Gorilla
5 Monkey
5 Monkey
5 Monkey
Проблема в том, что он может читать только 2 числа, потому что я использую sScores.substring(0, 2).trim())
.
Я попытался изменить его на sScores.substring(0, 3).trim())
. но становится ошибкой, потому что он читает до символьной части. Может ли кто-нибудь помочь мне пересмотреть мой код, чтобы я мог прочитать до 4 цифр? Ваша помощь будет высоко оценена.