#java #token
#java #токен
Вопрос:
любая помощь будет оценена.
выведите на нем некоторые подробности о штрафах, но код не дает мне выходных данных.
мой код :
Комментарии:
1. Использование
Integer.parseInt(stringTokenizer.nextToken().trim())
2. Ваша проблема заключается в обработке строк, а не в обработке файлов.
3. @NomadMaker Я пытаюсь записать детали моего файла и внести в него некоторые изменения, напечатав штраф, но мой код не работает.вы можете помочь?
4. Тогда задайте другой вопрос. Не редактируйте этот вопрос, чтобы задать его, а задайте новый вопрос.
Ответ №1:
class BookLib{
String userName ;
String bookName;
int noOfDays;
int fine;
@Override
public String toString() {
return "BookLib{"
"userName='" userName '''
", bookName='" bookName '''
", noOfDays=" noOfDays '}';
}
}
class Library{
List<BookLib> books = new ArrayList<>();
void readDetails() throws IOException{
FileReader fr = new FileReader("fineDetails.txt");
BufferedReader br = new BufferedReader(fr);
String thisLine;
List<String> lines = new ArrayList<>();
while ((thisLine = br.readLine()) != null) {
lines.add(thisLine);
}
for(String readLine: lines){
StringTokenizer stringTokenizer = new StringTokenizer(readLine, ",");
BookLib tempBook = new BookLib();
tempBook.userName = stringTokenizer.nextToken().trim();
tempBook.bookName = stringTokenizer.nextToken().trim();
tempBook.noOfDays = Integer.parseInt(stringTokenizer.nextToken().trim());
System.out.println("BookLib = " tempBook);
books.add(tempBook)
}
br.close();
fr.close();
}
Я надеюсь, приведенный выше код поможет вам в обработке NumberFormatException и будущей обработке ArrayIndexOutOfBoundException. вы также можете использовать try-catch {} для обработки этих ошибок.
Ответ №2:
Проблема в том, что вы не можете разобрать строку «25» до целого числа из-за пробела. Вы можете удалить пробелы, используя метод обрезки строки следующим образом:
//...
book[i].userName = stringTokenizer.nextToken();
book[i].bookName = stringTokenizer.nextToken();
book[i].noOfDays = Integer.parseInt(stringTokenizer.nextToken().trim()); // trim here
//...
Я думаю, что есть еще одна проблема, которая пока не вызвала никаких ошибок, потому NumberFormatException
что она возникла ранее: вы закрываете программы чтения br
и fr
в цикле for, но они все равно будут использоваться там. Вы должны переместить строки br.close()
и fr.close()
вниз до конца метода.
Комментарии:
1. Спасибо за разъяснение. Я закрою его после метода