Třída Java StringBuffer

Třída Java StringBuffer se používá k vytváření měnitelných (modifikovatelných) objektů String. Třída StringBuffer v Javě je stejná jako třída String kromě toho, že je měnitelná, tj. lze ji změnit.

Poznámka: Třída Java StringBuffer je bezpečná pro vlákna, tj. nemůže k ní přistupovat více vláken současně. Je to tedy bezpečné a povede to k objednávce.

Důležité konstruktory třídy StringBuffer

Konstruktér Popis
StringBuffer() Vytvoří prázdnou vyrovnávací paměť String s počáteční kapacitou 16.
StringBuffer(String str) Vytvoří vyrovnávací paměť String se zadaným řetězcem..
StringBuffer (kapacita int) Vytvoří prázdnou vyrovnávací paměť řetězce se zadanou kapacitou jako délkou.

Důležité metody třídy StringBuffer

Modifikátor a typ Metoda Popis
veřejný synchronizovaný StringBuffer připojit (řetězec s) Slouží k připojení zadaného řetězce k tomuto řetězci. Metoda append() je přetížená jako append(char), append(boolean), append(int), append(float), append(double) atd.
veřejný synchronizovaný StringBuffer insert(int offset, String s) Slouží k vložení zadaného řetězce s tímto řetězcem na zadanou pozici. Metoda insert() je přetížená jako insert(int, char), insert(int, boolean), insert(int, int), insert(int, float), insert(int, double) atd.
veřejný synchronizovaný StringBuffer nahradit(int startIndex, int endIndex, String str) Používá se k nahrazení řetězce ze zadaného startIndex a endIndex.
veřejný synchronizovaný StringBuffer delete(int startIndex, int endIndex) Používá se k odstranění řetězce ze zadaného startIndex a endIndex.
veřejný synchronizovaný StringBuffer zvrátit() slouží k obrácení struny.
veřejná int kapacita() Slouží k vrácení aktuální kapacity.
veřejná prázdnota secureCapacity (int minimumCapacity) Slouží k zajištění kapacity alespoň rovné danému minimu.
veřejný char charAt(int index) Slouží k návratu znaku na zadanou pozici.
veřejný int délka() Používá se k vrácení délky řetězce, tj. celkového počtu znaků.
veřejný řetězec podřetězec (int beginIndex) Používá se k vrácení podřetězce ze zadaného beginIndex.
veřejný řetězec podřetězec (int beginIndex, int endIndex) Používá se k vrácení podřetězce ze zadaného beginIndex a endIndex.

Co je to proměnlivý řetězec?

Řetězec, který lze upravit nebo změnit, se nazývá proměnlivý řetězec. Třídy StringBuffer a StringBuilder se používají k vytváření měnitelných řetězců.

1) Metoda append() třídy StringBuffer

Metoda append() zřetězí daný argument s tímto řetězcem.

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 } }  

Výstup:

 Hello Java  

2) Metoda StringBuffer insert().

Metoda insert() vloží daný řetězec s tímto řetězcem na danou pozici.

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 } }  

Výstup:

 HJavaello  

3) Metoda StringBuffer replacement().

Metoda replace() nahradí daný řetězec ze zadaného beginIndex a 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 } }  

Výstup:

 HJavalo  

4) Metoda StringBuffer delete().

Metoda delete() třídy StringBuffer odstraní řetězec ze zadaného beginIndex do 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 } }  

Výstup:

 Hlo  

5) Metoda StringBuffer reverse().

Metoda reverse() třídy StringBuilder obrátí aktuální řetězec.

StringBufferExample5.java

 class StringBufferExample5{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.reverse(); System.out.println(sb);//prints olleH } }  

Výstup:

 olleH  

6) Metoda StringBuffer capacity().

Metoda capacity() třídy StringBuffer vrací aktuální kapacitu vyrovnávací paměti. Výchozí kapacita vyrovnávací paměti je 16. Pokud se počet znaků zvýší z aktuální kapacity, zvýší se kapacita o (stará kapacita*2)+2. Pokud je například vaše aktuální kapacita 16, bude to (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 } }  

Výstup:

 16 16 34  

7) Metoda StringBuffer secureCapacity().

Metoda secureCapacity() třídy StringBuffer zajišťuje, že daná kapacita je minimální vzhledem k aktuální kapacitě. Pokud je větší než aktuální kapacita, zvýší se kapacita o (stará kapacita*2)+2. Pokud je například vaše aktuální kapacita 16, bude to (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 } }  

Výstup:

 16 16 34 34 70