Найти тему
Unassigned

Java String, думаете все так просто?

String — наиболее часто используемый класс Java. Очевидная причина этого в том, что строки — исключительно важный элемент программирования.

Класс java.lang.String состоит из трех final полей: массив символов, длина строки и сдвиг в массиве, с помощью которого реализуется метод substring. Так же в этом классе есть поле, в котором хранится посчитанный хэшкод, после первого вызова метода hashCode.

Стоит знать, что:

  • Строки в Java являются индексированными. То есть под каждым индексом лежит какой-то символ (Строка рассматривается как набор символов).
  • Строки являются постоянными; их значения не могут быть изменены после создания. То есть при любых изменениях строки, будет создаваться новая строка.
  • String представляет собой строку в формате UTF-16, в котором дополнительные символы представлены в виде суррогатных пар. Значения индекса относятся к единицам кода char, поэтому дополнительный символ использует две позиции в String.
  • Строки в Java нельзя наследовать, так как классы объявлены final, поэтому наследоваться не получится.
  • Сравнивать строки с помощью логических операторов (== ,а также !=) не получиться, так как сравниваются ссылки на объекты (Это вам не Python).
Java String, думаете все так просто?
Java String, думаете все так просто?

Основные методы

Здесь мы рассмотрим основные методы класса String

  • str1.charAt(индекс символа);
Возвращает символ из строки по индексу
  • str1.codePointAt(индекс символа);
Достает символ по индексу и возвращает ее числовой код (ascii)
  • str1.compareTo(str2);
Данный метод сравнивает две строки лексически или лексикографически. Возвращает числовое значение.
Пример: str1=JAva str2=Java. Возвращает -32 или 32.
Происходит вычитание символов
  • str1.compareToIgnoreCase(str2);
Данный метод сравнивает две строки без учета регистра. (см. метод compareTo)
Пример: str1=JAva str2=Jaca. Возвращает -19 или 19.
  • str1.concat(str2);
Данный метод предназначен для слияния, объединения, сложения двух строк.
Пример: str1=Java str2=Java. Возвращает JavaJava.
  • str1.equals(str2);
Данный метод сравнивает две строки на равенство значений. Возвращает boolean.
Пример: str1=JAva str2=Java. Возвращает false.
  • str1.equalsIgnoreCase(str2);
Данный метод сравнивает две строки на равенство значений без учета регистра. Возвращает boolean.
Пример: str1=JAva str2=Java. Возвращает true.
  • str1.isEmpty();
Данный метод возвращает true если длинна строки равна 0.
Пример str1="". Возвращает false.
  • str1.length();
Данный метод возвращает количество символов в строке.
Пробел тоже считается за символ!!!
  • str1.split(строку/символ);
Данный метод принимает разделитель и возвращает массив строк.
Пример: str1=Hot_Java
str1.split("_"). Возвращает 'Hot', 'Java'.
  • str1.toCharArray();
Данный метод возвращает массив с символами строки.
  • str1.trim();
Данный метод обрезает пробелы в начале и в конце строки.
Пример: str1=" Java ". Возвращает "Java"