Java. String: методы, примеры

Java String или строки в Java являются основными носителями текстовой информации, поэтому этот класс популярен и часто используется. В пакете Java.lang есть несколько классов для работы со строками - это StringBuffer и StringBuilder. Они объявлены как final - это говорит о том, что от этих классов невозможно наследоваться. Для того чтобы проверить это, откроем редактор и напишем слово string, а затем перейдем в сам класс. Здесь мы увидим, что он является final - это и означает отсутствие наследования.

Способы создания объектов

Объект класса Java String можно создать несколькими способами. Один из них - при помощи ключевого слова new и конструктора класса. Если нажать CTRL + P, то можно увидеть все эти конструкторы. Java String принимает строку, массив char, int, byte, а также объекты классов StringBuffer и StringBuilder. Второй способ для создания объекта - это прямое присвоение ссылки, заключенной в двойные кавычки.

java string сравнение строк

Классы StringBuilder, StringBuffer и их методы

Классы StringBuilder, StringBuffer очень похожи друг на друга и по предназначению близки к классу String. С помощью методов и конструкторов объекты этих классов можно преобразовывать друг в друга и в строку. Также у StringBuilder есть конструкторы, которые принимают строку и последовательность символов, поэтому строку можно преобразовывать в объекты. В обоих случаях есть метод ToString. Он не относится к классам StringBuilder и StringBuffer, а класса Object, с помощью которого их и можно привести к строке. Посмотреть все методы можно, если нажать CTRL + P. Основное отличие этих двух классов друг от друга заключается в том, что StringBuilder работает быстрее, но он не является потокобезопасным, в отличие от StringBuffer. Потокобезопасность - это способность кода функционировать сразу в нескольких потоках без блокировки.

java строка string

Особенности создания объекта у классов StringBuilder или StringBuffer

При создании объекта StringBuilder или StringBuffer конструктор по умолчанию автоматически резервирует некоторый объем памяти под 16 символов. Это можно проверить, используя один из них, метод Capacity и вывод в консоль. В результате будет выведен размер буфера - 16 символов. Можно нажать еще раз CTRL + P, и выбрать метод Int Capacity. То есть, в конструкторе мы может задать какой-то размер буфера. Также существует способ задать его позже. Для этого в StringBuilder выбираем метод Ensure Capacity. При помощи него мы можем задать минимальный гарантированный размер буфера. Если изменить его, например, на 20, а затем снова запустить консоль, мы получим 34. Все дело в том, что задать можно именно минимальный гарантированный размер, то есть, в любом случае, он не будет меньше 20. Но, если в этом классе есть в каком-то методе или конструкторе формула, по которой рассчитывается допустимая величина.

Присвоение значения строки объекту

Для того чтобы присвоить определенному объекту какое-то значение строки, необходимо это значение записать в конструктор или использовать один из методов Append. Их очень много, некоторые из этих методов могут принимать boolean, а затем преобразовывать его в строку и складывать, некоторые принимают char, массив, последовательности и т.д. В отличие от String, StringBuilder и StringBuffer, когда их методы используются, то мы продолжаем работать с этим же объектом, а не создаем новый.

java string длин

Отличия методов String и StringBuilder

При работе со строкой, если использовать какие-то методы, например, конкатенации или склеивания объектов, то в этом случае в результате создается новая строка. В этом можно убедиться при выводе в консоль. Как правило, классы StringBuilder и StringBuffer используются, когда очень часто идет сложение строк. Например, в цикле, где присутствует большой объем информации и постоянно происходит сложение строк, лучше использовать именно их. Это ускорит процесс работы, так как StringBuilder делает все быстрее, здесь не происходит постоянное создание нового объекта.

Метод SetLength

При сложении строк (при каждом сложении) будет создаваться новый объект. Если их более тысячи, то будет тратиться множество лишних ресурсов, а сам процесс займет много времени. Также у StringBuilder есть метод SetLength, где можно установить размер буфера. Например, если задать 15 и вывести результат в консоль, то получим число 20. Этот объект при достижении необходимого размера буфера автоматически увеличивается согласно заданной в этом методе формуле. Увеличение может происходить практически до определенного предела. Например, в методе Capacity максимальное число символов в объекте будет равно числу int.

Методы Insert и Delete

Следующий метод, наиболее часто используемый у StringBuilder, - это Insert. Он позволяет вставить символ в указанную позицию. У него также существует множество параметров. Еще один популярный метод - удаление символа из строки. Для выполнения этой операции нужно обратиться к Delete и выбрать какой-то его вариант из списка. Например, можно обратиться к подстроке от начального индекса до конечного или удалить символ, используя его индекс.

java сравнение string

Последний метод StringBuilder, который мы будем разбирать, - это Recerse или реверс. Его используют для переворота строки. Символы в ней будут выстраиваться в обратном порядке. Если выполнить его и вывести в консоль объект, то получим ее зеркальное отражение. В этом случае мы продолжаем работать с тем же объектом, новый при этом не создается. Просто в нем теперь хранится другая информация. У StringBuilder очень много методов, которые аналогичны тем, что есть у String. Работают они точно так же. Разницы между StringBuffer и StringBuilder по методам практически никакой, за исключением потокобезопасности StringBuffer. Из-за этой особенности он работает немного медленнее.

Методы класса String

Поговорим о методах класса Java String. Сначала рассмотрим их для объекта srt1 и str2, а затем - статические методы непосредственно самого класса String. Первый метод, который мы будем разбирать, - CharAt. Он принимает индекс и возвращает символ. В Java строки являются индексированными, то есть под каждым индексом лежит какой-то символ. Например, если создать объект Java, то “j” будет лежать под индексом “0”, “a” под индексом “1”, “v” - “2”, “a” - “3”. То есть, если записать в методе “0”, то он вернет символ, находящийся под нулевым индексом в этой строке. Проверить работу этого метода можно выводом в консоль и запуском приложения. В первом случае, мы увидим символ “j”. Если поменять “0” на “1”, то увидим символ “a”.

java string перенос строки

Метод CodepointAt

Следующий метод Java String, с которым мы познакомимся, - CodepointAt. Он возвращает int и принимает int-индекс. CodepointAt возвращает символ в кодировке Юникод по заданному индексу. То есть, если мы напишем индекс “1”, опять обращаясь к индексу строки и символу “a”, этот метод вернет нам число в кодировке Юникод соответствующее символу “a”. Если запустить приложение, мы увидим число 97. Например, если мы знаем, что индекс “A” соответствует числу 65 в кодировке Юникода. Тогда, при запуске, где в методе прописано такое значение, мы получим 65.

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

Еще один метод - compareTo. Он возвращает int, а принимает другую строку. В Java String сравнение строк между собой происходит при помощи этого метода. Он берет str1 и сравнивает ее с принимаемой строкой, лексически или лексикографически, с учетом регистра букв, то есть с учетом прописных и строчных букв. Если содержимое строк одинаковое, то мы должны получить при запуске приложения “0”, так как в процессе происходит вычитание символов. Поэтому, если содержимое разное, в ответе придет какое-то число, равное разности индексов.

string java примеры

Методы compareToIgnoreCase и Concat

Следующий метод, который мы будем разбирать, - это compareToIgnoreCase. Он похож на предыдущий, только здесь не учитывается регистр букв, то есть неважно, заглавная буква или прописная. В редакторе кода пишем str со значением Java и последнюю букву сделаем заглавной. И в результате мы все равно получаем 0. Мы получим другое значение, если будет какой-то другой символ. Теперь рассмотрим метод для строки Java String - Concat. Он предназначен для сложения, слияния или объединения двух строк. Concat аналогичен обычному сложению строк при помощи знака “+”.

Методы Equals и EqualsIgnoreCase

Метод Equals принимает другой объект типа Object. Но так как все наследуемые классы у нас имеют тип Object, значит, мы можем передать и строку. Возвращаемый тип у метода Equals - boolean, то есть наша строка сравнивается с другим объектом на равенство. Сравнивается содержимое двух объектов. То есть, если мы передадим строку str2, то, если ее содержимое не равно с объектом, мы получим ответ false, а если оно равно - то true. Есть также метод сравнения строк без учета регистра. Он называется - EqualsIgnoreCase. Он похож на compareTo и работает похожим образом. Возвращаемый тип здесь - boolean. В случае с compareTo в результате мы получаем разницу символов либо 0, если содержимое совпадает.

java string

Методы HashCode и IndexOf

Следующий метод - HashCode. Он возвращает хэш-код нашего объекта. Он есть у каждого объекта, и представляет собой число, точнее, битовую строку фиксированной длины. Получить его можно при помощи этого метода. Рассмотрим метод IndexOf. На самом деле их несколько, но мы будет рассматривать только один. Он принимает переменную ch - переменная в кодировке Юникод. То есть, если эта переменная совпадает с символом в строке, то возвращается индекс этого символа, если нет, то “-1”. Если наше число в кодировке Юникод есть в этой строке, то возвращается индекс этого символа. Если же нет такого символа, то возвращается “-1”.

Методы IsEmpty, Length, Split, Substring

Теперь разберем метод IsEmpty. Он возвращает true, если длина строки равна 0, то есть она является пустой. Следующий метод - Length. Он отвечает за число символов в строке, то есть возвращает длину Java String. Пробелы тоже являются символами. Метод Split принимает строку-разделитель и возвращает массив строк. Мы можем использовать литерал, помещенный в двойные кавычки, или строку. Когда метод встречает пробел, он делит строку и части распределяет в массив. В результате мы получим массив строк. Мы можем поместить в строку запятую, Split тоже разделит ее на части. Обратимся к методу Substring. Он извлекает из строки подстроку, длиной endindex-beginindex, начиная с последней позиции. Один из примеров Java String для этого метода: написать строку и задать для нее два индекса, тогда будет вырезана строка, и ее началом будет первый индекс, а окончанием - второй. В консоли будет выводиться определенная часть str1. Для переноса строки в Java String добавляется "\n".

Методы ToCharArray, ToLowerCase, ToUpperCase, Trim

Метод ToCharArray возвращает массив символов, то есть строка разбирается посимвольно. Если объявить какой-то char, а затем в метод поместить определенный элемент, то каждый символ окажется в массиве char. Затем каждый элемент массива выводится в консоль. Еще один метод - ToLowerCase. Он переводит строку в нижний регистр. Противоположным образом срабатывает ToUpperCase - он делает все буквы в строке заглавными. Очень часто используемый метод - Trim. Он обрезает пробелы в начале и в конце строки. Статических методов непосредственно самого класса очень много, потому что они принимают различные типы и массивы. Наиболее часто используемый - это ValueOf. Он преобразует переменную заданного типа в строку.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.