logo

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érPopis
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 typMetodaPopis
veřejný synchronizovaný StringBufferpř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ý StringBufferinsert(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ý StringBuffernahradit(int startIndex, int endIndex, String str)Používá se k nahrazení řetězce ze zadaného startIndex a endIndex.
veřejný synchronizovaný StringBufferdelete(int startIndex, int endIndex)Používá se k odstranění řetězce ze zadaného startIndex a endIndex.
veřejný synchronizovaný StringBufferzvrátit()slouží k obrácení struny.
veřejná intkapacita()Slouží k vrácení aktuální kapacity.
veřejná prázdnotasecureCapacity (int minimumCapacity)Slouží k zajištění kapacity alespoň rovné danému minimu.
veřejný charcharAt(int index)Slouží k návratu znaku na zadanou pozici.
veřejný intdélka()Používá se k vrácení délky řetězce, tj. celkového počtu znaků.
veřejný řetězecpodřetězec (int beginIndex)Používá se k vrácení podřetězce ze zadaného beginIndex.
veřejný řetězecpodř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