Обзор класса String в Java. Детальное рассмотрение функционала.

String coffee

В данной статье будут рассмотрены базовые функции по работе со строками. Где будет объснено назначения класса String в Java, сложение, сравнение, поиск и другой функционал связанный со строками.

Назначение класса String в Java

Класс String, в первую очередь, предназначен для работы со строками. Ранее мы рассматривали, что в Java существуют строковые литералы и строковые объекты.

Давайте рассмотрим основные особенности класса String:

  1. Класс имеет immutable состояние. Это означает, что после создания, каждый раз модифицируя его мы будет получать не модифицированный класс, а новую копию. В свою очередь, чтобы избежать излишнего использования ресурсов, при модификации нужно использовать другие инструменты такие как StringBuffer, StringBuilder.
  2. Класс описан с помощью final модификатора. Это означает, что любое наследование класса String запрещено.
  3. Класс является потокобезопасным и может использоваться в многопоточной среде.

Создание строк в Java

Для создания строки литерала достаточно лишь присвоить значение переменной:

String variable = "netifty.com";

В случае если вы хотите создать строку объект, воспользуйтесь одним из множества конструкторов:

String()
String(String original)
String(char value[])
String(char value[], int offset, int count)
String(int[] codePoints, int offset, int count)
String(byte bytes[], int offset, int length, String charsetName)

Сложение строк

Сложить строку довольно просто. Для это можно воспользоваться оператором +. Хотя нужно помнить, что каждый раз при этой операции будет создан новый объект в памяти.

Сравнение строк

Опять таки, сравнивая только литералы можно воспользоваться операцией == (равно). Так как в памяти, по-хорошему, должен храниться только один экземпляр уникальной строки, мы можем воспользоваться этой операцией.

В случае если используются строковые объекты мы можем использовать следующие методы:

boolean equals(Object anObject) // c учетом регистра
boolean equalsIgnoreCase(String anotherString) // без учета регистра

Преобразование строки из/в число

Для преобразования любого примитивного типа или его класса можно воспользоваться методом String.valueOf().

Для преображение из строки в числовые типы можно воспользоваться методом parse в нужном классе, пример:

Integer i = Integer.parseInt("7");
Double d = Double.parseDouble("7.77");

Поиск символа в строке

Для того, чтобы провести поиск символа в строке нужно воспользоваться одним из методов. В зависимости от метода могут появляться параметры индекса с которого будет произведен поиск.

indexOf(int ch)
indexOf(int ch, int fromIndex)
indexOf(String str)
indexOf(String str, int fromIndex)
lastIndexOf(int ch)
lastIndexOf(int ch, int fromIndex)
lastIndexOf(String str)
lastIndexOf(String str, int fromIndex)

Получение подстрок

Аналогично методу поиска подстроки, для получение подстроки существуют специальные методы. Также присутствует индекс с которых нужно выделять подстроку.

substring(int beginIndex)
substring(int beginIndex, int endIndex)

Преобразование строк в верхний/нижний регистр

Методы преображают строку или в верхний или нижний регистр. Не забывайте, что строка должна быть не null. В противном случае будет словлен NPE.

toLowerCase()
toUpperCase()

Преобразование строки в массив

Для этого существует метод split(String regex). Который определив разделитель создаст требуемый массив.

Особенности хранение строк в памяти

Мы ранее рассматривали особенности хранения строк в JVM. В статье Как хранится в памяти java.lang.String.

Заключение

Оставайтесь на страницах нашего сайта и как результат будете получать самые свежие бизнес идеи и обзор технологий.

Related posts

Leave a Comment