StringBuffer in Java è una sequenza di caratteri modificabile e sicura di thread, quindi utilizzando la classe StringBuffer è possibile creare oggetti String modificabili.
Nella stringa post in Java abbiamo già visto che gli oggetti String sono immutabili, cioè le stringhe sono costanti; i loro valori non possono essere modificati dopo che sono stati creati. A causa di questa proprietà di immutabilità quando si utilizza un metodo di modifica della stringa come la concatenazione, ciò che accade effettivamente è che viene creata e restituita una nuova stringa che contiene il risultato dell’operazione. Ciò può portare alla creazione di molti oggetti String intermedi se String viene modificato più volte, il che a sua volta significa che viene utilizzata più memoria per questi oggetti intermedi.
Usando StringBuffer object puoi evitare questo problema di creare diversi oggetti in quanto è mutabile. Non sorprende che le operazioni principali su un StringBuffer siano i metodi append e insert.
- punti Importanti su Java StringBuffer
- Java StringBuffer Costruttori
- Java StringBuffer metodo di esempi
punti Importanti su Java StringBuffer
Alcuni dei punti importanti di circa classe StringBuffer.
- StringBuffer in Java fornisce gran parte delle funzionalità della classe String con una deviazione prominente che StringBuffer è mutabile.
- StringBuffer è anche thread-safe quindi StringBuffer oggetto può essere tranquillamente utilizzato da più thread. I metodi della classe StringBuffer sono sincronizzati dove necessario.
- Ogni StringBuffer viene creato con una capacità. Finché la lunghezza della sequenza di caratteri contenuta nel buffer di stringa non supera la capacità, non è necessario allocare un nuovo array di buffer interno. Se il buffer interno trabocca, viene automaticamente ingrandito.
- Java 5 in avanti StringBuilder classe è anche fornito che è equivalente a StringBuffer classe ma progettato per l’uso da un singolo thread. StringBuilder è più veloce, in quanto non esegue alcuna sincronizzazione.
Java StringBuffer Constructors
Ci sono quattro costruttori nella classe StringBuffer.
- StringBuffer()– Costruisce un buffer di stringa senza caratteri e una capacità iniziale di 16 caratteri.
StringBuffer sb = new StringBuffer();
- StringBuffer(int capacity)– Costruisce un buffer di stringa senza caratteri e la capacità iniziale specificata.
StringBuffer sb = new StringBuffer(30);
- StringBuffer(CharSequence seq)– Costruisce un buffer di stringa che contiene gli stessi caratteri della CharSequence specificata.
Qui CharSequence è un’interfaccia implementata da CharBuffer, Segment, String, StringBuffer, StringBuilder. - StringBuffer (String str) – Costruisce un buffer di stringa inizializzato al contenuto della stringa specificata.
StringBuffer sb = new StringBuffer("Hello");
Esempi di metodo Java StringBuffer
metodo append
il metodo append è sovraccarico in modo da accettare dati di qualsiasi tipo. Questo metodo aggiunge la rappresentazione stringa del tipo di dati specificato al buffer esistente. Il metodo append aggiunge sempre questi caratteri alla fine del buffer.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.append(" "); sb.append("World").append(" ").append(123); System.out.println("Appended String- " + sb.toString()); }}
Output
Appended String- Hello World 123
Come puoi vedere dall’esempio append è usato con String come argomento e anche int come argomento in quanto è sovraccarico per questi tipi di dati. Puoi anche concatenare il metodo append come fatto in questa riga di codice –
sb.append("World").append(" ").append(123)
Usando il metodo append possiamo anche controllare l’istruzione che la stringa è immutabile dove StringBuffer è mutabile. Nell’esempio viene creato un oggetto StringBuffer e quindi i valori vengono aggiunti ad esso e il riferimento restituito viene memorizzato in un altro StringBuffer.
Allo stesso modo in cui viene creata una stringa e vengono aggiunti i valori, la stringa restituita viene anche referenziata da un’altra stringa.
Controllando l’uguaglianza di due riferimenti StringBuffer puoi vedere che entrambi sono uguali mentre per String entrambi sono diversi.
public class StringLiteral {public static void main(String args) {// With StringBufferSystem.out.println("StringBuffer...");StringBuffer sb = new StringBuffer("Hello");sb.append(" ");StringBuffer newsb = sb.append("World").append(" ").append(123);if (sb == newsb) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}// With StringSystem.out.println("String...");String str = "Hello";String newstr = str.concat(" ").concat("World").concat(" ").concat("123");if (str == newstr) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}}}
Output
StringBuffer...Reference is sameString...Reference is different
metodo di inserimento
il metodo di inserimento è sovraccarico in modo da accettare dati di qualsiasi tipo. Questo metodo viene utilizzato per inserire la rappresentazione stringa del tipo di dati specificato nel buffer esistente. Il metodo insert aggiunge i caratteri in un punto specificato.
il metodo insert accetta due argomenti prima un numero intero che indica la posizione in cui i caratteri devono essere inseriti nel buffer e il secondo argomento è il testo da inserire.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Knp"); sb.insert(3, "Code"); System.out.println("String after insert- " + sb); }}
Output
String after insert- KnpCode
metodi di lunghezza e capacità
capacity()– Restituisce la capacità corrente del StringBuffer.
length () – Restituisce il numero di caratteri in questa sequenza.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer(30); sb.append("Hello"); System.out.println("Capacity of StringBuffer- " + sb.capacity()); System.out.println("Length of StringBuffer- " + sb.length()); }}
Output
Capacity of StringBuffer- 30Length of StringBuffer- 5
Come puoi vedere StringBuffer viene creato con la capacità come 30 quindi la capacità viene visualizzata come 30 dove il numero di caratteri nel buffer è 5 quindi la lunghezza viene visualizzata come 5.
delete and deleteCharAt methods
- delete(int start, int end)– Rimuove i caratteri in una sottostringa di questa sequenza. inizio che indica che l’indice iniziale è inclusivo dove come fine che indica che l’indice finale è esclusivo.
- deleteCharAt– indice int) – Rimuove il carattere nella posizione specificata in questa sequenza.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.delete(1, 4); System.out.println("After deletion- " + sb); System.out.println("Length of StringBuffer- " + sb.length()); }}
Uscita
After deletion- HoLength of StringBuffer- 2
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.deleteCharAt(4);System.out.println("After deletion- " + sb);System.out.println("Length of StringBuffer- " + sb.length());}}
Uscita
After deletion- HellLength of StringBuffer- 4
Java StringBuffer metodo inverso
reverse()– Inverte l’esistente StringBuffer.
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");System.out.println("Reversed- " + sb.reverse());}}
Uscita
Reversed- olleH
Java StringBuffer metodo di sostituzione
sostituire(int start, int end, String str)– Sostituisce i caratteri in una sottostringa di questa sequenza (dall’inizio alla fine-1) con caratteri nella Stringa specificata.
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.replace(3, 5, "ena");System.out.println("String- " + sb);}}
Uscita
String- Helena
- Java StringBuilder Con il Metodo Esempi
- Perché la Stringa è Immutabile in Java
- È Java String Thread-Safe
- Java String interno() il Metodo
- Java String split() Metodo
- Compatto Stringhe in Java 9
- Trovare la Lunghezza della Stringa Senza l’Utilizzo di lunghezza() il Metodo in Java
- Convert Char Stringa E la Stringa di Char in Java
questo è tutto per l’argomento Java StringBuffer Con il Metodo di Esempi. Se manca qualcosa o hai qualcosa da condividere sull’argomento, scrivi un commento.
Potrebbe piacerti anche