Реалізація мови програмування без обробки в ньому рядків була б неповною. Так як в Java абсолютно все представлено об'єктами, то і організовано це з допомогою класу String. Він володіє своїми властивостями і методами. String є одним з найголовніших класів для роботи з рядковими змінними в Java. Так як текстові дані дуже часто використовуються при програмуванні, то String володіє безліччю різних методів, що допомагають розробникам швидко та надійно реалізувати практично будь-який функціонал.
Об'єкт String завжди доступний в програмі без окремого імпорту, так як розташований в java.lang.String.
Короткий огляд методів String
length(). Як випливає з назви, даний метод повертає довжину рядка об'єкта String. isEmpty(). Перевіряє порожнечу примірника String. concat(). Являє собою об'єднання двох примірників текстових даних. charAt(int индекс_символа). Поверне певний символ рядка, номер якого вказаний у змінній индекс_символа. compareTo(String Другая_строка). Порівнює два об'єкти типу String. compareToIgnoreCase(String Другая_строка). Робить те ж саме, що і попередній, з однією відмінністю — ігнорує регістр символів. contains(CharSequense ряд_символов). Повертає істину або брехня, в залежності від того, чи є в String шуканий набір букв чи цифр. matches(String регулярное_выражение). Перевіряє, чи відповідає рядок регулярному виразу, зазначеному в якості аргументу. replace(CharSequense мета, CharSequense значення). Переставляє послідовність символів, зазначену в цілі на ту, яка передається у значенні. replaceAll(String регулярное_выражение, String значення). Змінює набір букв, що відповідає регулярному виразу, на те що зазначено у другому параметрі. split(String регулярное_выражение). У результаті виклику даного методу повертається масив, який розбивається на елементи згідно регулярному виразу. format(Locale локаль, String формат, Object список аргументів) форматує рядок в більш зручне подання. substring(int начальный_символ). Повертає набір символів, вибраних у відповідності з вказаним початковим і кінцевим значенням. Даний список не повний. Кількість методів насправді набагато більше. Але залишилися використовуються вкрай рідко.
Метод length()
Із завданням вимірювання довжини рядка в коді стикався кожен програміст, незалежно від мови, на якому реалізується проект. Ця дія виконується шляхом виклику в Java String.length(). Результатом його роботи є цілочисельне значення типу int. Воно показує кількість символів в рядку.
У результаті роботи даного прикладу в консоль виведеться «Довжина рядка: 35 символів». Вимірювання може знадобитися в цілях її подальшого зміни за яким-небудь принципом. Або ж просто потрібно знати, який розмір вона займає.
Метод concat()
Іноді програмісту може знадобитися об'єднати два рядки в одну. Це актуально при формуванні дат з різними закінченнями, виведення різних складових значень і тому подібні дії. Дана операція легко реалізується за допомогою методу concat().
Синтаксис виглядає ось так — string1.concat(string2). Результатом виконання буде рядок, отримана від з'єднання двох вихідних. Застосовувати метод не обов'язково до об'єкта типу String. Можна використовувати concat і таким чином: «Привіт ».concat(«мир!»). Однак, на практиці, частіше всього використовують оператор «+», який володіє тим же функціоналом. Приклад: «Привіт, » + «мир!».
Метод charAt()
Щоб виокремити із загальної рядки один необхідний символ, використовується метод charAt(). Викликається він тим об'єктом, з якого потрібно це зробити, із зазначенням значення індексу типу int. Результатом роботи методу буде один символ типу char. Варто врахувати, що індекс починається з «0». Тобто у слові «Каліфорнія», значення букви «а» буде дорівнювати 1. Недосвідчені програмісти дуже часто стикаються з цією поширеною помилкою.
Метод compareTo()
Даний метод порівнює два рядки лексично. Відбувається це на базі таблиці символів Unicode. В результаті роботи методу повертається значення типу int, за яким можна судити про подібність двох рядків. При негативному int, об'єкт, що викликав метод, буде меншим, ніж зазначений у якості параметра. При позитивному результаті — навпаки. Ну, а якщо метод поверне «0», то обидва об'єкти збігаються.
Метод contains()
Метод contains() повертає логічне значення true або false, в залежності від того, чи викликає рядок фрагмент із символів. Синтаксис виглядає так: public boolean contains(CharSequense s) Якщо s буде дорівнює null, то метод виб'є виняток NullPointerException, яке доведеться вчасно перехопити і обробити відповідним чином.
Методи replace() та replaceAll()
replace() переставляє символи з представленого зразка на той, який зазначений у другому параметрі. У результаті виходить рядок з новими літерами. Це можна використовувати для коригування текстових конструкцій.
Метод replaceAll() робить практично те ж саме, але замість зразка набору символів використовується регулярний вираз. Це може виявитися дуже зручним для відокремлення деяких літер від цифр або в інших схожих моментах. Приклади використання обох методів:
Метод split()
Даний метод є дуже цікавий функціонал. Коротко синтаксис виглядає так: String.split. Java реалізує метод split шляхом розбиття рядка на складові частини за зразком з регулярного виразу. Результатом його роботи буде масив типу String. З таким підходом дуже зручно розділяти рядки, що представляють набори телефонних номерів, артикулів та інших значень, об'єднаних загальним принципом.
Синтаксис і приклад роботи String.split Java виглядає так:
Тут відбувається розбиття початкової рядки по прогалині спочатку на 4 частини, а потім на 2.
Метод format()
Для додання одержані в результаті виконання програми готових рядків використовується метод String.format. Java обзавелася цим рішенням, починаючи з 5 версії. Іноді потрібно вивести не тільки рядка на екран, а результати числових розрахунків. І не завжди вони відповідають очікуваному уявленню. Наприклад, деякі значення можуть мати ряд символів після коми або формат дати може бути в незвичному для країни вигляді. Це особливо актуально при розробці великих фінансових комплексів, в яких виводиться безліч різних даних про пересування грошових коштів і матеріалів. Загалом, якщо потрібно привести вихідні значення до зручному для підприємства увазі, то використовується String.format. Java обладнана всім необхідним для цього.
Метод substring()
Даний метод служить для вилучення підрядки з цілої рядка. У параметрах передається перший індекс початкового символу і у перевантажених версіях — останнього. Таким чином, можна знайти деяке слово серед усього текстового набору і витягнути його. Працює метод так: Рядок.substring(1 5). Даний вираз візьме з рядка з 2 по 5 символ включно і поверне вийшло значення. Не варто забувати, що індекс в Java починається з 0.
Трохи про перетворення
У процесі програмування невід'ємно відбуваються різні перетворення одних типів у інші. Наприклад, може знадобитися отримати з рядка число для обробки якої-небудь операцією. Це дуже поширене приведення в Java String to int. На практиці це виглядає так: int змінна = Integer.parseInt(Объект_типа_String). Приведення в Java String to int може породжувати і виключення. Наприклад, коли в перетворюваної до числа рядку,містяться не тільки цифри, але і букви. Природно, що такий виняток потрібно вчасно перехопити і обробити.
Існує і другий тип перетворення рядка в число — ціле число.valueOf(). Єдина різниця між ними полягає в тому, що parseInt повертає примітивний int, а valueOf об'єкт типу Integer. Масиви та перерахування дуже активно використовуються при програмуванні в Java. String array — це сукупність даних, об'єднаних за спільною ознакою. Перетворити рядок масив символів дуже просто — для цього використовується метод toCharArray(). Він розбиває текстові дані посимвольно і створює список з ними. Тип масиву при цьому буде char[]. Методи String Java можуть виконувати і зворотне перетворення. Наприклад, коли потрібно представити число або інший тип даних як рядок. Виглядає застосування так: String.valueOf(значение_или_переменная одного з декількох типів). Результатом виконання рядок.
Допоміжні методи
Клас Java String володіє кількома методами, які допомагають перетворити рядок в більш прийнятний вигляд. Наприклад, два методу — toLowerCase() і toUpperCase() - наводять текстові дані в нижній і верхній регістр відповідно. Це може знадобитися при складанні рядки з різних джерел шляхом парсинга або іншим способом. Клас Java String також володіє методом toString(), який, як не дивно, перетворює рядок в рядок. Однак актуально це може бути тільки для інших класів, перетворення яких у текстове представлення є можливим. Метод trim() в Java String здійснює видалення зайвих пробілів, як на початку, так і наприкінці рядка. Якщо дані були отримані з різних джерел і можливе попадання в результуючу змінну зайвих пробілів, то використовується метод trim().
Порівняння рядків
Так як клас Java String, як і всі інші, успадковується від Object, то відповідно і реалізують всі його методи. Одним з найбільш цікавих є equals(). Саме цей метод рекомендується використовувати при порівнянні двох рядків. Синтаксис виглядає так: String1.equals(Строка2). Результатом буде значення true або false, залежно від збігу. Існує також варіант методу equalsIgnoreCase(), який порівнює рядки без врахування регістра.
Висновки
Розглянуті методи представляють велику їх частину, яка використовується у повсякденному розробці на Java. Інші, а їх насправді більше 60 не враховуючи перевантажені версії, можна знайти на сайті Oracle, в офіційному довіднику.
Розробники Java використовували як можна більше різних підходів для комфортної та швидкої роботи з рядками при програмуванні. Знаючи необхідну кількість методів, можна реалізувати практично будь-яку задачу при їх перетворенні і обробці.