Мета роботи
У даній лабораторній роботі розробляється консольний додаток для реалізації найпростішого додатка з використанням масивів, рядків і файлів.
Вказівки до роботи
Консольний додаток Java являє собою відкомпільований клас, що містить точку входу.
Розглянемо простий приклад:
Тут клас First використовується тільки для того, щоб визначити метод main (), який і є точкою входу і з якого починається виконання програми інтерпретатором Java. Метод main () містить аргументи-параметри командного рядка String [] args у вигляді масиву рядків і є відкритим (public) членом класу. Це означає, що метод main () видно і доступний кожному класу. Ключове слово static оголошує методи і змінні класу, які використовуються для роботи з класом в цілому, а не тільки з об'єктом класу. Символи верхнього і нижнього регістрів в Java розрізняються, ніж Java нагадує мови C / C ++ і PHP.
Виведення рядка «Перша програма на Java!» В прикладі здійснює метод println () (ln - перехід до нового рядка після виведення) властивості out класу System, який доступний в програмі автоматично разом з пакетом java.lang. Наведену програму необхідно помістити в файл, ім'я якого збігається з ім'ям класу і з розширенням java. Найпростіший спосіб компіляції написаної програми - виклик сатиричного компілятора:
При успішній компіляції створюється файл First.class. Цей файл можна запустити на виконання з командного рядка за допомогою інтерпретатора Java наступним чином:
Для розробки програми можливе використання і спеціальних засобів розробника.
- NetBeans IDE - вільна інтегроване середовище розробки для всіх платформ Java - Java ME, Java SE і Java EE. Пропагується Sun Microsystems, розробником Java, як базовий засіб для розробки ПЗ на мові Java.
- Eclipse IDE - вільна інтегроване середовище розробки для Java SE, Java EE і Java ME. Пропагується IBM, одним з найважливіших розробників корпоративного ПО, як базовий засіб для розробки ПЗ на мові Java.
- IntelliJ IDEA - середовище розробки для платформ Java SE, Java EE і Java ME. Розробник - компанія JetBrains. Поширюється в двох версіях: вільної безкоштовної (Community Edition) і комерційної проприетарной (Ultimate Edition).
- JDeveloper - середовище розробки для платформ Java SE, Java EE і Java ME. Розробник - компанія Oracle.
- JBuilder - професійна інтегроване середовище розробки (IDE) на мові Java, заснована на програмному середовищі з відкритими початковими кодами Eclipse.
- BlueJ - Середовище розробки програмного забезпечення на мові Java, створена в основному для використання в навчанні, але також підходить для розробки невеликих програм.
Нижче розглянуті основні класи, використовувані при виконанні лабораторної роботи, розглянуто приклад вирішення одного із завдань.
клас java.io.File
Для роботи з файлами в додатках Java можуть бути використані класи з пакета java.io, одним з яких є клас File.
Клас File служить для зберігання і обробки як об'єкти каталогів і імен файлів. Цей клас не описує способи роботи з вмістом файла, але дозволяє маніпулювати такими властивостями файлу, як права доступу, дата і час створення, шлях в ієрархії каталогів, створення, видалення, зміна імені файлу і каталогу і т.д.
Основні методи класу File і способи їх застосування розглянуті в наступному прикладі.
клас System
Клас System містить набір корисних статичних методів і полів системного рівня. Примірник цього класу не може бути створений або отриманий.
При запуску цього коду на екран буде виведено тільки:
І в файл "d: \ file2.txt" буде записано:
Аналогічно можуть бути перенаправлений стандартне введення System.in - викликом System.setIn (InputStream) і потік виведення повідомлень про помилки System.err - викликом System.setErr (за замовчуванням всі потоки - in, out, err - працюють з консоллю додатки).
клас String
Клас String містить основні методи для роботи з рядками:
- concat (String s) або + - злиття рядків;
- equals (Object ob), equalsIgnoreCase (String s) - порівняння рядків з урахуванням і без урахування регістру;
- compareTo (String s), compareToIgnoreCase (String s) - лексикографическое порівняння рядків з урахуванням і без урахування регістру;
- contentEquals (StringBuffer ob) - порівняння рядка і вмісту об'єкта типу StringBuffer;
- charAt (int n) - витяг з рядка символу із зазначеним номером (нумерація з нуля);
- substring (int n, int m) - витяг з рядка подстроки довжини m-n, починаючи з позиції n;
- length () - визначення довжини рядка;
- valueOf (об'єкт) - перетворення примітивного об'єкта до рядка;
- toUpperCase () / toLowerCase () - перетворення всіх символів викликає рядки в верхній / нижній регістр;
- replace (char з1, char с2) - заміна в рядку всіх входжень першого символу другим символом;
- getBytes (параметри), getChars (параметри) - витяг символів рядка у вигляді масиву байт або символів.
У наступному прикладі масив символів і ціле число перетворюються в об'єкти типу String з використанням методів цього класу.
Приклад консольного java-додатки
Завдання: Ввести n рядків з консолі. Вивести на консоль рядка і їх довжини, впорядковані по зростанню.
Завдання до лабораторної роботи
- Ввести n рядків з консолі, знайти найкоротшу рядок. Вивести цей рядок і її довжину.
- Ввести n рядків з консолі. Упорядкувати, а потім вивести рядки в порядку зростання їх довжин, а також (другий пріоритет) значень цих їх довжин.
- Ввести n рядків з консолі. Вивести на консоль ті рядки, довжина яких менша за середню, також їх довжини.
- У кожному слові тексту k-ю букву замінити заданим символом. Якщо k більше довжини слова, коригування не виконувати.
- У російській тексті кожну букву замінити її номером в алфавіті. В одному рядку друкувати текст з двома пробілами між буквами, в наступному рядку внизу під кожною буквою друкувати її номер.
- З невеликого тексту видалити всі символи, крім пробілів, які не є буквами. Між послідовностями поспіль букв залишити хоча б один пробіл.
- З тексту видалити всі слова заданої довжини, що починаються на згідну букву.
- У тексті знайти всі пари слів, з яких одне є зверненням іншого.
- Знайти і надрукувати, скільки разів повторюється в тексті кожне слово.
- Знайти, яких букв, голосних або приголосних, більше в кожному реченні тексту.
- Вибрати три різні точки заданого на площині безлічі точок, що становлять трикутник найбільшого периметра.
- Знайти таку точку заданого на площині безлічі точок, сума відстаней від якої до інших мінімальна.
- Кутника можна заданий на площині перерахуванням координат вершин в порядку обходу його межі. Визначити площу багатокутника.