Клас Java StringBuffer використовується для створення змінних (модифікованих) об’єктів String. Клас StringBuffer у Java такий самий, як і клас String, за винятком того, що він змінний, тобто його можна змінювати.
Примітка. Клас Java StringBuffer є потоково-безпечним, тобто кілька потоків не можуть отримати доступ до нього одночасно. Тож це безпечно та призведе до замовлення.
Важливі конструктори класу StringBuffer
Конструктор | опис |
---|---|
StringBuffer() | Він створює порожній буфер String з початковою ємністю 16. |
StringBuffer(String str) | Він створює рядковий буфер із вказаним рядком. |
StringBuffer (ємність int) | Він створює порожній буфер String із заданою ємністю як довжина. |
Важливі методи класу StringBuffer
Модифікатор і тип | метод | опис |
---|---|---|
загальнодоступний синхронізований StringBuffer | додати (рядок s) | Він використовується для додавання зазначеного рядка до цього рядка. Метод append() перевантажений, як append(char), append(boolean), append(int), append(float), append(double) тощо. |
загальнодоступний синхронізований StringBuffer | вставити (зміщення int, рядок s) | Він використовується для вставки зазначеного рядка з цим рядком у вказану позицію. Метод insert() перевантажений, як insert(int, char), insert(int, boolean), insert(int, int), insert(int, float), insert(int, double) тощо. |
загальнодоступний синхронізований StringBuffer | replace(int startIndex, int endIndex, String str) | Він використовується для заміни рядка з указаних startIndex і endIndex. |
загальнодоступний синхронізований StringBuffer | delete(int startIndex, int endIndex) | Він використовується для видалення рядка з указаного startIndex і endIndex. |
загальнодоступний синхронізований StringBuffer | зворотний() | використовується для перевертання рядка. |
публічний міжн | місткість() | Використовується для повернення поточної потужності. |
громадська порожнеча | secureCapacity(int minimumCapacity) | Він використовується для забезпечення пропускної здатності, щонайменше дорівнює заданому мінімуму. |
публічний характер | charAt (індекс індексу) | Він використовується для повернення символу у вказану позицію. |
публічний міжн | довжина() | Він використовується для повернення довжини рядка, тобто загальної кількості символів. |
загальнодоступний рядок | підрядок (int beginIndex) | Він використовується для повернення підрядка з указаного beginIndex. |
загальнодоступний рядок | підрядок (int beginIndex, int endIndex) | Він використовується для повернення підрядка з указаних beginIndex і endIndex. |
Що таке змінний рядок?
Рядок, який можна модифікувати або змінити, називається змінним рядком. Класи StringBuffer і StringBuilder використовуються для створення змінних рядків.
1) Метод append() класу StringBuffer
Метод append() об’єднує заданий аргумент із цим рядком.
StringBufferExample.java
class StringBufferExample{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.append('Java');//now original string is changed System.out.println(sb);//prints Hello Java } }
Вихід:
Hello Java
2) Метод StringBuffer insert().
Метод insert() вставляє заданий рядок із цим рядком у задану позицію.
StringBufferExample2.java
class StringBufferExample2{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.insert(1,'Java');//now original string is changed System.out.println(sb);//prints HJavaello } }
Вихід:
HJavaello
3) Метод StringBuffer replace().
Метод replace() замінює заданий рядок із указаних beginIndex і endIndex.
StringBufferExample3.java
class StringBufferExample3{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.replace(1,3,'Java'); System.out.println(sb);//prints HJavalo } }
Вихід:
HJavalo
4) Метод StringBuffer delete().
Метод delete() класу StringBuffer видаляє рядок із зазначеного beginIndex до endIndex.
StringBufferExample4.java
class StringBufferExample4{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.delete(1,3); System.out.println(sb);//prints Hlo } }
Вихід:
Hlo
5) Метод StringBuffer reverse().
Метод reverse() класу StringBuilder змінює поточний рядок.
StringBufferExample5.java
class StringBufferExample5{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.reverse(); System.out.println(sb);//prints olleH } }
Вихід:
olleH
6) Метод StringBuffer capacity().
Метод capacity() класу StringBuffer повертає поточну ємність буфера. За замовчуванням ємність буфера становить 16. Якщо кількість символів збільшується порівняно з поточною ємністю, вона збільшує ємність на (oldcapacity*2)+2. Наприклад, якщо ваша поточна ємність 16, це буде (16*2)+2=34.
StringBufferExample6.java
class StringBufferExample6{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 } }
Вихід:
16 16 34
7) Метод StringBuffer secureCapacity().
Метод secureCapacity() класу StringBuffer гарантує, що задана ємність є мінімальною для поточної ємності. Якщо вона більша за поточну ємність, вона збільшує ємність на (стара ємність*2)+2. Наприклад, якщо ваша поточна ємність 16, це буде (16*2)+2=34.
StringBufferExample7.java
class StringBufferExample7{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 sb.ensureCapacity(10);//now no change System.out.println(sb.capacity());//now 34 sb.ensureCapacity(50);//now (34*2)+2 System.out.println(sb.capacity());//now 70 } }
Вихід:
16 16 34 34 70