|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
|||||||||||
Вывод, основанный на значении переменной22.03.2013, 14:47. Показов 11072. Ответов 161
Метки нет (Все метки)
Привет,понадобилась такая штучка -программа.В ней есть int и он равен ,например 1,если он равен 1,то выводим содержимое первых десяти файлов,если 2 то остальной десятки и так далее.Вот как такое сделать??
В принципе кусок кода тут есть:
Добавлено через 3 минуты Плюс в выше указанном коде ,надо для каждого inta прописывать содержимое файлов,может есть унивирсальное решение?
0
|
|||||||||||
| 22.03.2013, 14:47 | |
|
Ответы с готовыми решениями:
161
Пробелы в значении переменной |
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
|||||||||||||||
| 22.03.2013, 17:56 [ТС] | |||||||||||||||
я представляю так вверху алгоритм получения цифры номера страницы есть, далее получаем ,как в том коде позииции начала и конца,по ним смотрим какая введена цифра ,и выводим десять файлов,плюс проверка ,думаю надо создать конструкцию if() else().типо,если это не число вывести ошибку,вообще вот этот момент Добавлено через 22 секунды
0
|
|||||||||||||||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
|
| 22.03.2013, 18:07 | |
|
Проект с кодом Вы пока не трогаете. Там должен быть пустой main. И все. Идея проектирование в том, чтобы разобраться с решаем задачей до кодирования. А не кодировать и решать проблемы "на скаку"
![]() Итак, с учетом Ваших коррекций, общий план получается следующий: 1. Мы из указанной папки достаем все файлы, считываем содержимое и добавляем в массив. 2. Спрашиваем пользователя, какую страницу он хотел бы посмотреть. 3. Если страница введена корректно (это, не буква и она попадает в нужный диапазон), то выдаем набор строк из нашего массива. Если страница введена неверно, выдаем ругательства и просим ввести другой номер. 4. Программа завершает работу. Общий алгоритм выведения страниц: 1. Пользователь вводит страницу. 2. Мы расчитываем диапазон исходя из введенного значения. 3. Выводим нужные страницы. Не сложно, правда ведь? Это мы, получается, конкретизировали шаг 3 нашего общего плана. Теперь нам нужно немного конкретизировать 2й шаг нашего алгоритма. Попробуйте (почитайте старую тему). Подумайте, как из введенного значения страницы мы можем получить начальное и конечное значение диапазона. Ведь нам только это и нужно ![]() Повторюсь: пока никакого кода!
1
|
|
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
||
| 22.03.2013, 18:41 [ТС] | ||
|
Добавлено через 24 минуты получается нам нужно будет ввести две переменные start & end start равна page*10-9, а end равна page*10,а по ним у же выводим)Ну и плюс узнаем величину массива length нам поможет.Как вам?подходит?
0
|
||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
|||
| 22.03.2013, 18:54 | |||
![]() ![]() Т.е. шаг 2 алгоритма выливается в такое: 1. Вычисляем конец диапазона, как введенное значение * 10. 2. Вычисляем начало диапазона, как конец диапазона - 9. Итого, давайте соберем все описание вместе: 1. Мы из указанной папки достаем все файлы, считываем содержимое и добавляем в массив. 2. Спрашиваем пользователя, какую страницу он хотел бы посмотреть. 3. Если страница введена корректно (это, не буква и она попадает в нужный диапазон), то : 3.1. Берем, что ввел пользователь. 3.2. Расчитываем диапазон исходя из введенного значения. 3.2.1. Вычисляем конец диапазона, как введенное значение * 10. 3.2.2. Вычисляем начало диапазона, как конец диапазона - 9. 3.3. Выводим нужные страницы. 5. Если страница введена неверно, выдаем ругательства и просим ввести другой номер. 6. Программа завершает работу. Вот так приблизительно должна выглядеть наша программа. Я надеюсь, все шаги понятны? Если да, теперь надо полумать что и где у нас будет расположено. 1. Т.к. блок вывода записей по номеру страниц планируется использовать и в другой программе, предлагаю его вынести в отдельный метод. 2. Так же, ввод файлов я бы тоже вынесла, чтобы не загромождать main. В конечном итоге, в main у нас далжно быть только общение с пользователем и вызов методов. Давайте начнем со 2го, более простого метода, который считывает файлы. Скомпонуйте его из кода, который у Вас есть.
1
|
|||
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
|
| 22.03.2013, 19:08 [ТС] | |
|
0
|
|
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
|
| 22.03.2013, 19:11 | |
|
Да, шаг 1 из нашего общего алгоритма.
1
|
|
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
||||||
| 22.03.2013, 19:25 [ТС] | ||||||
|
Так,примерно??:
0
|
||||||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
|
| 22.03.2013, 19:36 | |
|
1. Знаете зачем у Вас живет вот эта конструция: "@SuppressWarnings("resource")"? Если нет - убираем.
2. Зачем этому методу входящие параметры, если Вы их не используете? Или начинайте использовать, или удаляйте. Почему то использование, что есть сейчас нельзя считать за нормальное? Т.к. page у нас ничего не содержит до вызова этого метода. Смысла передавать ее в него нет. Использования s я не нашла. К br та же претензия, что и к page. 3. Убираем миллион try/catch, оставляем один, отлавливающий исключения общего характера.
1
|
|
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
|||||||||||||||||||||||||||
| 22.03.2013, 20:22 [ТС] | |||||||||||||||||||||||||||
|
Вообще не знаю,как эти ошибки исправить,вот так пойдет:
Вот только до чего додумался:
Добавлено через 1 минуту Добавлено через 1 минуту А все вот:
0
|
|||||||||||||||||||||||||||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
||||||||||||||||
| 22.03.2013, 20:27 | ||||||||||||||||
|
1. Исправлено.
2. Вы правильно поняли принцип (на примере переменной page). Сделайте тоже самоя для br и удалите s, если оно не используется. 3. Немного теории по исключениям: все исключения в java являются, в конечном счете, производными от Exception. Т.е. если пройтись по иерархии наследования в любом типе исключений, мы всегда упремся в этот класс. Что это нам дает ... посмотрите на следующую запись:
если FileNotFoundException, мы проверим, не является ли это исключение UnsupportedEncodingException. Если нет, то пойдем к следующему catch, который у нас и сделает его обработку. если у нас выкинется другое исключение, которое не является одним из первых двух, мы его словим 3м блоком. Принцип работы похож на switch-case. В отлове исключений нам главное помнить одно: более общие конструкции должны стоять в конце. Наши исключения можно рассматривать как коробки. Например, в "коробок" Exception может поместиться любое исключение, т.к. он является родителем для их всех. Самый маленький коробок будет у тех исключений, которые не являются базовыми для других. Еще раз: маленькие коробкивверху. Давайте на предыдущем примере подробнее ... если немного переставить catch
если FileNotFoundException, мы спросим, является ли он Exception. Да. Сработает 1й обработчик. и так для всех исключений. У нас первый блок в состоянии "принять" любое исключение и дальше мы продвинуться не сможем. Так, перейдем от лирических отступлений к нашей задаче. Т.к. у нас нет различий в обработке разного рода исключений, можно просто ловить Exception.
![]() А, и еще ... если вы внутри обрабатываете все исключения, совсем не за чем говорить, что они могут быть выброшены наружу (throws IOException) Что говорит, если убираете SuppressWarnings?
1
|
||||||||||||||||
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
||||||||
| 22.03.2013, 20:34 [ТС] | ||||||||
|
Вот так лучше,наверно:
Добавлено через 1 минуту Что дальше?
0
|
||||||||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
|
| 22.03.2013, 20:36 | |
|
Замечательно! Осталось избавиться от еще одной явно-локально переменной s и можно двигаться дальше
![]() По нашему плану у нас вот: 1. Мы из указанной папки достаем все файлы, считываем содержимое и добавляем в массив. 2. Спрашиваем пользователя, какую страницу он хотел бы посмотреть. Первое мы сделали на половину. Теперь осталось вывести. Добавьте в main вызов нашего метода, приглашение пользователю ввесли страницу и считывание введенной информации.
1
|
|
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
||||||||||||||||||
| 22.03.2013, 20:51 [ТС] | ||||||||||||||||||
Вот так я вызвал содержимое:
0
|
||||||||||||||||||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
|
| 22.03.2013, 20:58 | |
|
Отлично. Но с 2мя маленькими замечаниями
![]() 1. pagef(); возвращает Вам массив строк, с которыми Вы дальше будете работать. Его нужно куда-то сохранить. 2. Если планируется проверка на то, входит ли наша страница в нужный диапазон (кстати, планируется ли?), то считывание лучше поместить перед пользовательским вводом, чтобы у нас уже были данные для анализа.
1
|
|
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
||||
| 22.03.2013, 21:14 [ТС] | ||||
|
0
|
||||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
|||||||||
| 22.03.2013, 21:21 | |||||||||
|
Если Вы будете это проверять, давайте сделаем это следующим шагом. Напишите код, который будет проверять ввод пользователя.
![]()
0
|
|||||||||
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
|
| 22.03.2013, 21:22 [ТС] | |
|
0
|
|
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
|||
| 22.03.2013, 21:28 | |||
1
|
|||
|
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
|
||||||||
| 22.03.2013, 22:00 [ТС] | ||||||||
|
Что-то не получается проверка:
Добавлено через 17 секунд
0
|
||||||||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
||||||||||
| 22.03.2013, 22:22 | ||||||||||
![]() По поводу Вашей проверки:
1
|
||||||||||
| 22.03.2013, 22:22 | |
|
Помогаю со студенческими работами здесь
40
Замена символов в значении переменной последний символ в значении переменной Замена символов в значении переменной Ошибка в значении переменной, передаваемой в функцию Удалить несколько символов в значении переменной Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|