La classe Java StringBuffer viene utilizzata per creare oggetti String mutabili (modificabili). La classe StringBuffer in Java è uguale alla classe String tranne che è mutabile, ovvero può essere modificata.
Nota: la classe Java StringBuffer è thread-safe, ovvero più thread non possono accedervi contemporaneamente. Quindi è sicuro e risulterà in un ordine.
Importanti costruttori della classe StringBuffer
Costruttore | Descrizione |
---|---|
StringBuffer() | Crea un buffer di stringhe vuoto con la capacità iniziale di 16. |
StringBuffer(Stringa) | Crea un buffer di stringhe con la stringa specificata.. |
StringBuffer(capacità int) | Crea un buffer di stringhe vuoto con la capacità specificata come lunghezza. |
Metodi importanti della classe StringBuffer
Modificatore e tipo | Metodo | Descrizione |
---|---|---|
StringBuffer pubblico sincronizzato | aggiungere(Stringa) | Viene utilizzato per aggiungere la stringa specificata a questa stringa. Il metodo append() è sovraccaricato come append(char), append(boolean), append(int), append(float), append(double) ecc. |
StringBuffer pubblico sincronizzato | insert(int offset, String s) | Viene utilizzato per inserire la stringa specificata con questa stringa nella posizione specificata. Il metodo insert() è sovraccaricato come insert(int, char), insert(int, boolean), insert(int, int), insert(int, float), insert(int, double) ecc. |
StringBuffer pubblico sincronizzato | sostituisci(int startIndex, int endIndex, String str) | Viene utilizzato per sostituire la stringa da startIndex e endIndex specificati. |
StringBuffer pubblico sincronizzato | delete(int startIndex, int endIndex) | Viene utilizzato per eliminare la stringa da startIndex e endIndex specificati. |
StringBuffer pubblico sincronizzato | inversione() | viene utilizzato per invertire la corda. |
pubblico int | capacità() | Viene utilizzato per restituire la capacità corrente. |
vuoto pubblico | garantireCapacità(int capacità minima) | Viene utilizzato per garantire una capacità almeno pari al minimo indicato. |
carattere pubblico | charAt(int indice) | Viene utilizzato per restituire il carattere nella posizione specificata. |
pubblico int | lunghezza() | Viene utilizzato per restituire la lunghezza della stringa, ovvero il numero totale di caratteri. |
stringa pubblica | sottostringa(int inizioIndice) | Viene utilizzato per restituire la sottostringa dall'indice iniziale specificato. |
stringa pubblica | sottostringa(int indiceinizio, int indicefine) | Viene utilizzato per restituire la sottostringa dall'indice iniziale e dall'indice finale specificati. |
Cos'è una stringa mutabile?
Una stringa che può essere modificata o cambiata è nota come stringa mutabile. Le classi StringBuffer e StringBuilder vengono utilizzate per creare stringhe modificabili.
1) Metodo append() della classe StringBuffer
Il metodo append() concatena l'argomento fornito con questa stringa.
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 } }
Produzione:
Hello Java
2) Metodo StringBuffer insert()
Il metodo insert() inserisce la stringa data con questa stringa nella posizione data.
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 } }
Produzione:
HJavaello
3) Metodo StringBuffer replace()
Il metodo replace() sostituisce la stringa specificata da BeginIndex e EndIndex specificati.
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 } }
Produzione:
HJavalo
4) Metodo StringBuffer delete()
Il metodo delete() della classe StringBuffer elimina la stringa dal BeginIndex specificato a 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 } }
Produzione:
Hlo
5) Metodo StringBuffer reverse()
Il metodo reverse() della classe StringBuilder inverte la String corrente.
StringBufferExample5.java
class StringBufferExample5{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.reverse(); System.out.println(sb);//prints olleH } }
Produzione:
olleH
6) Metodo StringBuffer capacità()
Il metodo capacity() della classe StringBuffer restituisce la capacità corrente del buffer. La capacità predefinita del buffer è 16. Se il numero di caratteri aumenta rispetto alla capacità corrente, aumenta la capacità di (oldcapacity*2)+2. Ad esempio, se la tua capacità attuale è 16, sarà (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 } }
Produzione:
16 16 34
7) Metodo StringBuffer GuaranteeCapacity()
Il metodo GuaranteeCapacity() della classe StringBuffer garantisce che la capacità specificata sia minima rispetto alla capacità corrente. Se è maggiore della capacità attuale, aumenta la capacità di (vecchia capacità*2)+2. Ad esempio, se la tua capacità attuale è 16, sarà (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 } }
Produzione:
16 16 34 34 70