#java
#java
Вопрос:
Программа должна считывать данные матча из текстового файла. Каждая строка в файле содержит данные для определенного матча. Формат каждой строки в файле выглядит следующим образом:
home_team_name : away_team_name : home_team_score : away_team_score
Обратите внимание, как символ двоеточия (:) используется для разделения разных частей ввода (разделитель полей).
Ниже приведен пример типичных строк данных в файле.
Arsenal : Spurs : 2 : 1
Everton : Liverpool : 1 : 1
Huddersfield : Chelsea: 2 : 1
Программа должна предложить пользователю ввести имя файла данных матча, затем она должна прочитать, сохранить и обработать каждую строку данных матча, хранящихся в файле, и вывести данные на консоль в указанном формате (т. Е. Это не просто чтение и отображение необработанных данных, сохраненных в файле).в файле).
Данные матча должны отображаться в следующем формате.
-----------------------------------------------------
| Home team | Score | Away team | Score |
-----------------------------------------------------
| Arsenal | 2 | Spurs | 1 |
| Everton | 1 | Liverpool | 1 |
| Huddersfield| 2 | Chelsea | 1 |
------------------------------------------------------
Требование 3 (20 баллов)
Данные, хранящиеся в файле, могут быть повреждены. Для этого требования программа должна проверять каждую строку данных, считанных из файла, идентифицировать неверные данные и сообщать о них пользователю через сообщения на консоли. Как минимум, программа должна проверять и проверять следующие возможные проблемы
Название домашней команды может отсутствовать.
Название команды гостей может отсутствовать.
Счет домашней команды может отсутствовать.
Счет команды гостей может отсутствовать.
Возможно, разделитель полей отсутствует или используется неправильный разделитель полей.
Счет домашней команды может быть недопустимым целым числом.
Счет команды гостей может быть недопустимым целым числом.
Комментарии:
1. Какой-либо код до сих пор?
2. Является ли одно единственное слово в этом вопросе вашим собственным или все скопировано? Пожалуйста, приложите некоторые усилия самостоятельно, проведя некоторое исследование и написав некоторый код, прежде чем задавать вопрос здесь.
3. извините, я буду стараться изо всех сил
Ответ №1:
Вы можете прочитать файл с помощью FileReader и прочитать его построчно.
Затем разделите каждую строку своим разделителем, который в данном случае является :
Если есть 4 элемента, то эта строка правильно отформатирована.
Выполните итерацию по всем элементам и проверьте, является ли он пустым.
и, наконец, попробуйте проанализировать 2-й и 4-й элементы, которые проверяют результаты.
Вот псевдокод
//read file
String[] lines = readFile();
//iterate through records
for String line: lines {
String[] elems = line.split(":");
if elems.size() < 4 {
//invalid delimeter used
continue;
}
// Do the validation below
if String.isEmpty(elems[0]) {
//home team missing
}
// likewise check for empty elements
// validating numbers
try{
Integer.parse(elems[1]);
} catch (NumberFormatException ex) {
// invalid home score
}
//like wise check for invalid scores
}
Надеюсь, это поможет!