Строкові об’єкти

Для роботи з послідовностями символів в Java передбачені тип обєктів String і мовна підтримка при їх ініціалізації Клас String надає різноманітні методи для роботи з обєктами String

Приклади літералів типу String вже зустрічалися нам в прикладах – зокрема, в програмі HelloWorld Коли в програмі зявляється оператор такого вигляду:

Systemoutprintln(“Hello, world”)

компілятор Java насправді створює обєкт String, присвоює йому значення зазначеного литерала і передає його як параметр методу println

Обєкти типу String відрізняються від масивів тим, що при їх створенні не потрібно вказувати розмір Створення нового обєкта String і його ініціалізація виконуються всього одним оператором, як показує наступний приклад:

class StringDemo {

static public void main(String args[]) { String myName = “Petronius”

myName = myName + “ Arbiter” Systemoutprintln(“Name = ” + myName)

}

}

Ми створюємо обєкт String з імям myName і инициализируем його строковим літералом Вираз з оператором конкатенації +, наступне за ініціалізацією, створює новий обєкт String з новим значенням Нарешті, значення myName виводиться в стандартний вихідний потік Результат роботи наведеної вище програми буде таким:

Name = Petronius Arbiter

Крім знака +, в якості оператора конкатенації можна використовувати оператор + = як скорочену форму, в якій назву змінної розміщується в лівій частині оператора Удосконалена версія наведеного вище прикладу виглядає так:

class BetterStringDemo {

static public void main(String args[]) { String myName = “Petronius”

String occupation = “Reorganization Specialist”

myName = myName + “ Arbiter”

myName += “ ”

myName += “(” + occupation + “)” Systemoutprintln(“Name = ” + myName)

}

}

Тепер при запуску програми буде виведена наступна рядок: Name = Petronius Arbiter (Reorganization Specialist)

Обєкти String містять метод length, який повертає кількість символів у рядку Символи мають індекси від 0 до length () -1

Обєкти String є незмінними, Або доступними тільки для читання вміст обєкта String ніколи не змінюється Коли в програмі зустрічаються оператори такого вигляду:

str = “redwood”

/ / .. Зробити що-небудь зі str .. str = oak;

другий оператор присвоювання задає нове значення посилання на обєкт, А не вмісту рядка При кожному виконанні операції, яка на перший погляд змінює вміст обєкта (наприклад, використання вище + =), насправді виникає новий обєкт String, також доступний тільки для читання, – Тоді як вміст вихідного обєкта String залишається незмінним Клас StringBuffer дозволяє створювати рядки із змінним вмістом цей клас описується в главі 8, в якій детально розглядається і клас String

Найпростіший спосіб порівняти два обєкти String і зясувати, чи збігається їх вміст, полягає у використанні методу equals:

if (oneStrequals(twoStr))

foundDuplicate(oneStr, twoStr)

Інші методи, в яких порівнюються частини рядка або ігнорується регістр символів, також розглядаються в розділі 8

Вправа 110

Змініть додаток StringsDemo так, щоб у ньому використовувалися різні рядки

Вправа 111

Змініть додаток ImprovedFibonacci так, щоб створювані в ньому обєкти String

спочатку зберігалися в масиві, а не виводилися б відразу ж на друк методом println

Джерело: Арнольд К, Гослінг Д – Мова програмування Java (1997)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*