1. Модифициране на низове
В Java низовете са неизменни обекти. Това беше напequalsо, за да направи класа String силно оптимизиран и да позволи да се използва навсякъде. Например, само неизменни типове се препоръчват за използване като ключове в колекцията HashMap .
Въпреки това, често възникват ситуации, когато програмистите биха намерor за по-удобно класът String
да бъде променлив. Те искат клас, който не създава нов подниз при всяко извикване на един от неговите методи.
Е, да предположим, че имаме много голям низ и трябва често да добавяме нещо към края му. В този случай дори колекция от знаци ( ArrayList<Character>
) може да бъде по-ефективна от постоянното пресъздаване и свързване на String обекти.
Точно затова към езика Java беше добавен String-подобен тип, който може да се променя. Нарича се StringBuilder
.
Създаване на обект
За да създадете StringBuilder
обект въз основа на съществуващ низ, трябва да изпълните оператор като:
StringBuilder name = new StringBuilder(string);
За да създадете празен променлив низ, трябва да използвате израз като този:
StringBuilder name = new StringBuilder();
Списък с методи
Класът StringBuilder
има две дузини полезни методи. Ето най-важните:
Метод | Описание |
---|---|
|
Преобразува подавания обект в низ и го добавя към текущия низ |
|
Преобразува подавания обект в низ и го вмъква в текущия низ |
|
Заменя частта от низа, указана от интервала start..end, с подаден низ |
|
Премахва знака с посочения индекс от низа |
|
Премахва символи в посочения интервал от низа |
|
Търси подниз в текущия низ |
|
Търси подниз в текущия низ, започвайки от края |
|
Връща знака в низа при подаден индекс |
|
Връща подниза, дефиниран от посочения интервал |
|
Обръща текущия низ. |
|
Променя знака при посочения индекс на предадения знак |
|
Връща дължината на низа в знаци |
Ето кратко описание на всеки метод
2. Описание на методите:
Добавяне към низ
За да добавите нещо към променлив низ ( StringBuilder
), използвайте append()
метода. Пример:
Код | Описание |
---|---|
|
|
Преобразуване в standardн низ
За да конвертирате StringBuilder
обект в String обект, просто трябва да извикате неговия toString()
метод. Пример
Код | Изход |
---|---|
|
|
Как да изтрия знак?
За да изтриете символ в променлив низ, трябва да използвате deleteCharAt()
метода. Пример:
Код | Изход |
---|---|
|
|
Как да заменя част от низ с друг низ?
За това има replace(int begin, int end, String str)
метод. Пример:
Код | Изход |
---|---|
|
|
3. Полезни примери за работа с низове
Как да обърна низ?
Има специален метод за това — reverse()
; Пример:
Код | Изход |
---|---|
|
|
StringBuffer
клас
Има още един клас — StringBuffer, който е аналог на StringBuilder
класа, но методите му са маркирани с synchronized
модификатора. Това означава, че StringBuffer
обектът може да бъде достъпен едновременно от множество нишки.
Но е много по-бавно от StringBuilder
. Може да се нуждаете от този клас, когато започнете активно да изследвате многонишковостта в приключението Java Multithreading .