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