|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.11.2017, 10:15 | #1 |
Новичок
Джуниор
Регистрация: 13.11.2017
Сообщений: 4
|
Работа с файлами
Всем добрый день!
Есть задача: В файле, содержащем фамилии студентов и их оценки, записать прописными буквами фамилии тех студентов, которые имеют средний балл более “7”. С файла я считал Код:
Далее, отсортировав буквы от чисел Код:
Побывал и по другому Код:
c.length 7 sum 373.0 c[0] 5 c[1] 6 c[2] 5 c[3] 3 c[4] 5 c[5] 9 c[5] + c[4] 95 И так Код:
allArrays ИвановИван Короче с задачей не справился Подскажите где выход |
13.11.2017, 14:00 | #2 |
Форумчанин
Регистрация: 08.04.2012
Сообщений: 104
|
Для начала опишите точный формат файла с данными, а то вы пишите "В файле, содержащем фамилии студентов и их оценки" и тут же в вашем примере мелькает имя "Результат: Первый элемент массива 'Иванов Иван 5,6,5,3,5,9,4'"
|
13.11.2017, 14:25 | #3 |
Новичок
Джуниор
Регистрация: 13.11.2017
Сообщений: 4
|
Формат документа txt
Иванов Иван 5,5,3,6,2,3 ПетровИван 5,5,3,6,2,3 итд |
13.11.2017, 14:27 | #4 |
Новичок
Джуниор
Регистрация: 13.11.2017
Сообщений: 4
|
|
14.11.2017, 08:34 | #5 |
Форумчанин
Регистрация: 08.04.2012
Сообщений: 104
|
Парсер и обработчик
Код:
сущность студент Код:
Код:
Код:
|
15.11.2017, 07:52 | #6 |
Новичок
Джуниор
Регистрация: 13.11.2017
Сообщений: 4
|
Спасибо, но у меня есть такой вариант
String s = linesAsArray[j]; Pattern p = Pattern.compile("((\\d+,?)+)"); Matcher m = p.matcher(s);//Объект «Искатель» является двигателем, который //интерпретирует шаблон и выполняет операции сопоставления с входной строкой. if (!m.find()) {// m.find () возвращает true, если шаблон совпадает с любой частью текста. throw new IllegalArgumentException("Illegal string format"); } int position = m.start();//вернет индекс первого символа, совпавшего String name = s.substring(0, position).trim();//возвращает новую строку, которая является подстрокой данной строки. /*OptionalDouble Объект контейнера, который может содержать или не содержать double значение*/ OptionalDouble average = Arrays.stream(s.substring(position) .split(",\\s*")) // .filter(StringUtils::isNumeric) .map(Integer:arseInt). mapToInt(Integer::intValue). average(); average.ifPresent(avg -> System.out.println(name + " : " + avg)); System.out.println(name + " : " + average); |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Лабораторная работа(очень простая) Структуры, работа с файлами | yurda | Фриланс | 2 | 11.06.2016 08:44 |
Работа с файлами в с++. | bilbo | Помощь студентам | 3 | 17.09.2014 09:35 |
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами | Konlor | Общие вопросы C/C++ | 2 | 18.05.2014 12:37 |
Работа с файлами. | GoodNight | Помощь студентам | 7 | 22.12.2012 19:22 |
Работа с файлами | sancheszone | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 11.11.2009 14:21 |