Classe Java StringBuffer

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