Строковые функции в Java | Строка Java [с примерами]
Опубликовано: 2020-12-01Оглавление
Введение
Java завоевала большое уважение среди программистов из-за поддержки объектно-ориентированного программирования и предопределенных функций для предоставляемых типов данных. Строки — один из впечатляющих типов данных, предоставляемых java.
Они неизменяемы и хранятся в области кучи в отдельном блоке памяти, называемом String Constant Pool. В Java есть много предопределенных функций для строк, давайте их изучим!
Функции
charAt()
Чтобы получить доступ к символу в определенной позиции, нам не нужен цикл для итерации по этому индексу, функция charAt() сделает всю тяжелую работу за вас!. Функция charAt() возвращает символ в определенной позиции в строке, помните, что индекс начинается с 0 в java.
Эта функция определена с модификатором доступа как общедоступная и возвращает символ. Этот метод ожидает целое число в качестве параметра, и доступ к функции с параметром, превышающим длину строки, возвращает исключение IndexOutOfBounds Exception, которое является исключением времени выполнения.
Строка str = « привет » ; первый символ = ул . символ( 0 ); символ второй = ул . символ( 1 ); Система . вне . println(первый + " " + второй); |
Приведенный выше фрагмент выдаст «h e» в качестве вывода, потому что первой переменной присваивается символ «h», а второй переменной присваивается символ «e».
CompareTo() и compareToIgnoreCase()
Сравнение двух строк не будет работать с оператором == в java, потому что он проверяет, являются ли адреса обеих переменных и возвращает true, если обе переменные имеют одинаковый адрес. Таким образом, оператор == не может сравнить содержимое строк, здесь вступает в действие метод compareTo().

Этот общедоступный метод ожидает строку или объект в качестве параметра, который необходимо сравнить, и возвращает целочисленное значение после лексикографического сравнения. Помните, что этот метод чувствителен к регистру. Но мы можем использовать compareToIgnoreCase() для сравнения, игнорирующего нижний и верхний регистр символов.
Строка str1 = « Привет » ; Строка str2 = « Привет » ; Строка str3 = « привет » ; интервал i1 = строка1 . comapreTo(str2); int i2 = str2 . сравнить с (str3); интервал i3 = ул2 . сравнить с игнорером регистром (str3); Система . вне . println(i1 + " " i2 + " " + i3); |
Приведенный выше фрагмент выводит «1 0 1» в качестве вывода, потому что переменной i1 присваивается значение 1, поскольку обе строки равны, переменной i2 присваивается значение 0, поскольку мы сравниваем строки с учетом регистра. Точно так же переменной i3 присваивается значение 1, поскольку мы сравниваем строки, игнорируя верхний и нижний регистры.
конкат()
Поскольку строки неизменяемы, мы не можем редактировать значение строки, вместо этого мы можем просто переназначить обновленное значение той же переменной. Мы можем использовать метод concat() для объединения обеих строк. Этот метод ожидает в качестве параметра строку, которая должна быть объединена, и возвращает новую объединенную строку.
Строка s1 = « первая » ; Строка s2 = « секунда » ; Система . вне . println(s1 . concat(s2)); |
Приведенный выше фрагмент выводит строку «первая секунда».
Читайте: Свойства и преимущества JavaBeans: как использовать?
содержит()
Проверка того, присутствует ли строка в качестве подпоследовательности другой строки, теперь проще простого. Метод contains() в java является публичной булевой функцией и возвращает true, если в строке присутствует последовательность символов, и false, если нет. Этот метод ожидает последовательность символов в качестве параметра и возвращает исключение NullPointerException, если в качестве параметра передается нулевой объект.
Строка s1 = « Привет! » ; Система . вне . println(s1 . contains( " the " )); //линия 1 Система . вне . println(s1 . содержит( "" )); //строка2 Система . вне . println(s1 . содержит( ноль )); //строка3 |
Приведенный выше фрагмент выводит True для строки 1, поскольку последовательность «the» присутствует в строке, аналогично строка 2 выводит True, потому что пустая последовательность возвращает True по умолчанию. И строка 3 генерирует исключение NullPointerException, поскольку параметру передается значение null.
индекс чего-либо()
Мы видели функцию Java, которая возвращает символ, присутствующий в заданном индексе, но что, если нам нужен индекс первого вхождения данного символа. Расслабьтесь, функция indexOf() делает свою работу. Эта функция внутренне переопределена четырьмя различными сигнатурами, давайте пройдемся по ним.

String s1 = « Привет, привет, привет, привет » ; Система . вне . println(s1 .indexOf ( " там " )); //линия 1 Система . вне . println( s1.indexOf( " там " , 5 ) ); //строка 2 Система . вне . println( s1.indexOf ( ' T ' )); // строка 3 Система . вне . println( s1.indexOf ( ' T ' , 16 )); //строка 4 |
В приведенном выше фрагменте функция, вызываемая в строке 1, ожидает строку, и она возвращает начальный индекс первого вхождения данной строки, в этом случае она печатает 4. Функция, вызываемая в строке 2, ожидает строку вместе с целым числом в качестве параметров, теперь это целое число относится к начальному индексу, где поиск данной строки начинается с этого индекса, в этом случае она печатает 37.
Функция, вызываемая в строке 3, ожидает символ в качестве параметра, она возвращает первое вхождение данного символа, в этом случае она печатает 15. Точно так же функция, присутствующая в строке 4, ожидает символ и целое число.
Если целое число представляет начальный индекс, а затем поиск данного символа начинается с этого символа, в этом случае выводится 26. Помните, что эта функция полностью чувствительна к регистру, что мы можем видеть в приведенном выше фрагменте.
пусто()
Эта функция выполняет простую задачу, но очень полезную с точки зрения программиста. Эта логическая функция возвращает True, если строка пуста, и False, если нет. Эта функция помогает проверить, является ли строка пустой, перед выполнением каких-либо задач над строкой, потому что немногие из функций выдают исключение для пустых строк, что прерывает поток выполнения.
Строка s1 = « Привет! » ; Строка s2 = «» ; Система . вне . println(s1 . isEmpty()); //линия 1 Система . вне . println(s2 . isEmpty()); //строка2 |
Фрагмент выше выводит False для строки 1 и True для строки 2.
длина()
Выяснение длины строки больше не является утомительной задачей, функция length() в java возвращает длину заданной строки. Это возвращает ноль, если в качестве параметра передается пустая строка.
Строка s1 = « abcdefghijklmnopqrstuvwxyz » ; Система . вне . println(s1 . длина()); |
Приведенный выше код печатает 26.
заменять()
В отличие от функции indexOf(), которая возвращает только первое вхождение последовательности, функция replace() заменяет все указанные символы заданным новым символом и возвращает новую строку. Эта общедоступная функция ожидает в качестве параметров два символа, скажем, c1 и c2. Где он ищет все символы, равные c1, и заменяет их на c2.
Строка s1 = « HelloHELLO » ; Система . вне . println(s1 . replace( ' l ' , ' p ' )); |
Помните, что эта функция чувствительна к регистру, поэтому приведенный выше фрагмент выводит «heppoHELLO».
toLowerCase() и toUpperCase()
Преобразование строки в нижний регистр или наоборот — забавная задача в java, для которой достаточно одной строки кода, а функции toLowerCase(), toUpperCase() — художники.
Эти общедоступные функции не ожидают никаких параметров и возвращают новую строку с обновленными строчными и прописными буквами.
Строка s1 = « Привет! » ; Система . вне . println(s1 . toUpperCase()); //линия 1 Система . вне . println(s1 . toLowerCase()); //строка2 |
В приведенном выше фрагменте строка 2 печатает «привет», а строка 1 печатает «ЭЙ, ЗДЕСЬ».

Узнайте: обработка событий в Java: что это такое и как это работает?
подрезать()
Наивный подход к удалению конечных и начальных пробелов в строке состоит в том, чтобы перебрать строку и удалить символ, если он является пробелом, но есть оптимальный способ. Функция trim() удаляет все начальные и конечные пробелы строки и возвращает новую строку. Эта общедоступная функция не ожидает никаких параметров.
Строка s1 = « Привет! » ; Система . вне . println(s1 . Обрезать()); |
Приведенный выше фрагмент выводит «Hey There» — новую строку после обрезки конечных и начальных пробелов.
Заключение
Мы рассмотрели несколько строковых функций в Java, поняли, как они работают, чего ожидают и что возвращают. Изучил переопределенные сигнатуры нескольких функций, прошел пример фрагмента кода для правильного понимания. Теперь, когда вы знаете о нескольких функциях, начните использовать их всякий раз, когда это необходимо.
Если вам интересно узнать больше о Java, ООП и разработке программного обеспечения с полным стеком, ознакомьтесь с дипломом PG upGrad и IIIT-B по разработке программного обеспечения с полным стеком, который предназначен для работающих профессионалов и предлагает более 500 часов тщательного обучения, 9 + проекты и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.