1. Modifica delle stringhe
In Java, le stringhe sono oggetti immutabili. Questo è stato fatto per rendere la classe String altamente ottimizzata e per consentirne l'utilizzo ovunque. Ad esempio, solo i tipi immutabili sono consigliati per l'uso come chiavi nella raccolta HashMap .
Tuttavia, si verificano spesso situazioni in cui i programmatori troverebbero più conveniente che la String
classe sia mutabile. Vogliono una classe che non crei una nuova sottostringa ogni volta che viene chiamato uno dei suoi metodi.
Bene, supponiamo di avere una stringa molto grande e di dover aggiungere frequentemente qualcosa alla fine di essa. In questo caso, anche una raccolta di caratteri ( ArrayList<Character>
) può essere più efficiente che ricreare e concatenare costantemente oggetti String.
Questo è esattamente il motivo per cui è stato aggiunto al linguaggio Java un tipo simile a String che può essere modificato. Si chiama StringBuilder
.
Creazione di un oggetto
Per creare un StringBuilder
oggetto basato su una stringa esistente, devi eseguire un'istruzione come:
StringBuilder name = new StringBuilder(string);
Per creare una stringa mutabile vuota, è necessario utilizzare un'istruzione come questa:
StringBuilder name = new StringBuilder();
Elenco dei metodi
La StringBuilder
classe ha due dozzine di metodi utili. Ecco i più importanti:
Metodo | Descrizione |
---|---|
|
Converte l'oggetto passato in una stringa e lo accoda alla stringa corrente |
|
Converte l'oggetto passato in una stringa e lo inserisce nella stringa corrente |
|
Sostituisce la parte della stringa specificata dall'intervallo start..end con la stringa passata |
|
Rimuove il carattere con l'indice specificato dalla stringa |
|
Rimuove i caratteri all'interno dell'intervallo specificato dalla stringa |
|
Cerca una sottostringa nella stringa corrente |
|
Cerca una sottostringa nella stringa corrente, a partire dalla fine |
|
Restituisce il carattere nella stringa in corrispondenza dell'indice passato |
|
Restituisce la sottostringa definita dall'intervallo specificato |
|
Inverte la stringa corrente. |
|
Cambia il carattere in corrispondenza dell'indice specificato nel carattere passato |
|
Restituisce la lunghezza della stringa in caratteri |
Ecco una breve descrizione di ciascun metodo
2. Descrizione dei metodi:
Aggiunta a una stringa
Per aggiungere qualcosa a una stringa mutabile ( StringBuilder
), utilizzare il append()
metodo. Esempio:
Codice | Descrizione |
---|---|
|
|
Conversione in una stringa standard
Per convertire un StringBuilder
oggetto in un oggetto String, devi solo chiamare il suo toString()
metodo. Esempio
Codice | Produzione |
---|---|
|
|
Come cancello un personaggio?
Per eliminare un carattere in una stringa mutabile, è necessario utilizzare il deleteCharAt()
metodo. Esempio:
Codice | Produzione |
---|---|
|
|
Come posso sostituire parte di una stringa con un'altra stringa?
Per questo c'è il replace(int begin, int end, String str)
metodo. Esempio:
Codice | Produzione |
---|---|
|
|
3. Esempi utili di lavoro con le stringhe
Come invertire una stringa?
C'è un metodo speciale per fare questo - reverse()
; Esempio:
Codice | Produzione |
---|---|
|
|
StringBuffer
classe
C'è un'altra classe — StringBuffer, che è un analogo della StringBuilder
classe, ma i suoi metodi sono contrassegnati con il synchronized
modificatore. Significa che StringBuffer
è possibile accedere all'oggetto contemporaneamente da più thread.
Ma è molto più lento di StringBuilder
. Potresti aver bisogno di questa classe quando inizi a esplorare attivamente il multithreading nella ricerca Java Multithreading .
GO TO FULL VERSION