Page 202 - 6253
P. 202
Запустивши програму на виконання отримаємо наступний результат:
Hello world!
Об'єкт класу StringBuffer передається у метод changeStr() по посиланню, тому
усі зміни пов’язані із об'єктом зберігаються.
У класі StringBuffer не реалізовано перевизначених методів equals() і
hashCode(), що не дозволяє порівняти вміст двох об'єктів.
Форматування рядків
Для створення форматованого тексту у мові Java використовується клас
Formatter, який входить у пакет java.util. Цей клас дозволяє виводити числа, рядки,
час і дату у будь-якій зручній для кінцевого користувача формі.
У класі Formatter оголошений метод format(), який виконує перетворення
переданого в нього параметра в рядок заданого формату і зберігає його в об'єкті
типу Formatter. Аналогічний метод оголошений у класах PrintStream та PrintWriter.
Крім того, у цих класах оголошено метод printf() з параметрами ідентичними
параметрам методу format(), який виконує форматоване виведення в потік, тоді як
метод format() зберігає зміни в об'єкті типу Formatter.
Клас Formatter перетворює двійкову форму представлення даних у
форматований текст. Він зберігає форматований текст у буфері, вміст якого можна
отримати у будь-який необхідний момент. Також існує можливість збереження
буфера класу Formatter у файл.
У класі Formatter визначено більше десяти конструкторів. Основні із них
приведено у зведеній таблиці 8.4
Таблиця 8.4 – Конструктори класу Formatter
Formatter()
Formatter(Appendable buf)
Formatter(Appendable buf, Locale loc)
Formatter(String filename) throws FileNotFoundException
Formatter(String filename, String charset)
throws FileNotFoundException, UnsupportedEncodingException
201