Назад | Начало урока | Вперед
Содержание

Глава 7

"Форматирование"

Задачи из главы 7

по теме "Обработка строк"
7.1 Проверка кодов. Курсовые коды в Savanna university имеют фиксированную структуру:три прописные буквы, за которыми следуют три цифры. Напишите класс для таких кодов и включите в него методы для их создания, преобразования в строку и проверки на достоверность. Проверьте класс с помощью небольшой тестовой программы.

7.2 Палиндромы. Палиндромы - это слова или предложения, которые одинаково читаются в обоих неправлениях (слева направо и справа налево), если не учитывать знаки препинания. Известными палиндромами являются:

Madam, I'm Adam
Able was I ere I saw Elba

Напишите метод, проверяющий, является строка палиндромом или нет. Вызовите метод из тестовой программы.

7.3 Преобразование имен. При создании файла с именами людей использовались исключительно прописные буквы. Необходимо представить имена в обычной форме: первая буква - прописная, остальные - строчные. Следует учитывать инициалы, а так же то, что префиксы и фамилии, такие как Du или Von, начинаются с прописной буквы. Например:

M.A.STORE M.A.Store
J.FOX-ROBINSON J.Fox-Robinson
P DU PLESSIS P Du Plessis

по теме"Разделители"
7.4 Программа индексирования. В процессе программирования полезно знать, где встречается каждый из идентификаторов. Напишите программу, которая индексирует код надлежащим образом, то есть создает список идентификаторов, отсортированных по алфавиту, с указанием номеров строк, где присутствуют эти идентификаторы.

7.5 Алфавитный указатель. Под алфавитным указателем следует понимать список слов, в котором для каждого элемента приводится номер страницы и строки. Различие между алфавитным указателем и индексированным списком состоит в том, что в первом случае учитываются все слова, за исключением часть употребляемых (таких как and, the, is). Напишите программу, формирующую алфавитный указатель для произвольного текста небольшого объема. Используйте разделители и хэш-таблицы. (Подсказка: в хеш-таблице слова должны быть ключами, а номера страниц/строк - значениями. Поскольку слова могут встречаться более одного раза, значением должен быть массив чисел. Кроме того, значение должни иметь верхний предел, например десять случаев употребления данного слова).

7.6 Эгалитарные сообщения. Так называют сообщения. в которых все лица упоминаются одинаково, не зависимо от титула или чина. Совет университета Саванны постановил, что на собраниях во всех документах надлежит опускать титулы выступающих. Так вместо профессор Браун следует употреблять один из следующих вариантов: Джон Браун, Браут. Дж.Б или Джон. Важно так же соблюдать унификацию (не использовать варианты одного имени). Ваша задача - обработать документ, найти титулы и префиксы (проф, др, м-р, мисс, миссис и тд), удалить их и представить имя в выбранной форме.

Программе понадобится информация об именах людей. Например если выбран вариант "Джон Браун", а программа встретила словосочетание "проф.Браун", ей потребуется где-то найти недостающее имя "Джон". Возможны такие пути:

- познакомиться с секретаршей или иным лицом, которое будет применять эту программу, и получить соответствующую информацию.

- на основе списков приглашенных и списков отказавшихся от участия составить хеш-таблицу с необходимой инф. Следует исходить из того, что списки содержат все данные, касающиеся имени человека и обращения к нему (например , проф.Джон Браун(ДжБ)). Для нахождения списков используйте метод startWith класса String.

Вы должны решить, как будет организована хеш-таблица (что послужит ключом). Помните, что искать можно и ключи и значения.

по теме"Форматирование"
7.7 Имена из нескольких слов . В программе "Олимпийские медали" из примера 4.10 мы столкнулись с проблемой, которая заключалась в отсутствии возможности обрабатывать имена, содержащие пробелы. Дело в том, что пробел относится к разделителям. Мы решили эту проблему изменив данные так, Что например название страны United.States записывалось с точкой посредине. Теперь мы знаем больше о форматировании. Какой же способ будет лучшим для применения в методе, осуществляющим чтение таких имен?

Учтите, что имена распределены по колонкам фиксированного размера, в которых отсутствуют другие элементы. Напишите подходящий метод для считывания имен, состоящих из нескольких слов, включите его в программу как часть класса Formatters из пакета myutilities и используйте, чтобы избавиться от ограничения характерного для рограммы "Олимпийские медали".

7.8 Улучшенное форматирование цены. Вернемся к задаче 5.9. Используйте форматирующий числа объект, чтобы вывести цены на автомобили в соответствующем формате для валюты страны, с которой вы хорошо знакомы.

7.9 Изменяемое форматирование. Напишите программу, которая выводит действительные числа (генерируемые случайно) в формате, указываемом через интерфейс класса Display. Это означает, что нужно использовать шаблон ###0.###, где количество знаков # до и после точки может изменяться.

по теме"Даты, календари и время"
7.10 Дни рождения. Методы after и before класса Calendar, который находится в пакете java.util, возвращают значение true или false в зависимости от отношений между экземпляром объекта и параметром. Например выполнение сравнения (метода before) в выражении

new Calender(1951,Calendar, DECEMBER,14) before (new Calendar(1951,Calendar,December,1));

даст результат false. Напишите программу, в которой производится ввод даты вашего рождения и даты Пасхи в текущем году, а так же вывод результата каждого из трех отношений - before, equals и after - между двумя датами.

7.11 Настройка региональных стандартов. Выберите любую страну, для которой еще не создан объект класса Locale, и произведите для нее настройку языка и региональных стандартов, как в примере 7.8. Исследуйте интерфейсы API посредством команды help языка Java и попробуйте отрегулировать форматирование валюты.

7.12 Всенародные праздники. Вспомните задачу 6.6, в которой применялся класс Date. Найдите в справочниках праздники одной из стран, перечисленных в описаниях класса Locale (см раздел 7.4), и напишите программу, выводящую даты в соответствующем этой стране формате. Информацию о всенародных праздниках можно найти на сайте по такому адресу: http://www.globalsources.com/TNLIST/TRAVEL/HOLIDAYS.HTM


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz