Le Stringhe

In Java le stringhe non sono tipi primitivi ma appartengono alla classe String. Vengono memorizzate in un’area di memoria chiamata string pool. Se tue variabili di tipo stringa hanno il medesimo contenuto, puntano alla stessa identica area di memoria. Esistono due modi per creare una stringa, il primo é scrivendola direttamente nel codice, il secondo é attraverso il costruttore della classe String.

//Primo caso
String s = “Questa é una stringa”;

//Secondo caso
Stringa stringa = new String(“Questa é una stringa”);

L’utilizzo del secondo metodo comporta l’istanziatura di un nuovo oggetto a sé stante rispetto ad un eventuale ulteriore secondo oggetto istanziato attraverso la stessa modalità.

Concatenazione di stringhe

Le stringhe possono essere concatenate allo scopo di creare una nuova stringa contenente i dati delle due, che continuano il loro ciclo vitale a prescindere da ciò che accadrà alla nuova stringa. Per concatenare due stringhe viene utilizzato l’operatore “+”.

Confronto tra stringhe

Le stringhe possono essere confrontate per verificare se contengono la stessa sequenza di caratteri. Questo avviene attraverso il metodo equals(), che restituisce il valore booleano true in caso affermativo, o false in caso negativo.

NB: diversamente da quanto accade in altri linguaggi, in Java le stringhe non possono essere confrontate attraverso l’ausilio dell’operatore di confronto ==, perché le stringhe in Java sono oggetti non sono variabili.

Analisi di stringhe

I metodi per la manipolazione delle stringhe sono contenuti nella classe String. Tra questi, degni di nota, sono il metodo lenght(), che restituisce il numero di caratteri che la compongono, ed il metodo charAt() che restituisce il carattere presente ad una certa posizione.

Le sottostringhe

Il metodo substring() permette di estrarre una porzione di stringa (chiamata sottostringa), e di manipolarla. Accetta due argomenti: il primo é l’indice del primo elemento da estrarre, il secondo dell’ultimo elemento da estrarre.

String s = “Dott. Bianchi Roberto”;

String cognome = s.substring(6, 13);

System.out.println(“Il cognome é ”+ cognome);

Altri tipi di confronto

Il linguaggio Java mette a disposizione molte altre funzionalità che permettono di verificare se una stringa inizia con una determinata sottostringa, oppure di individuare la posizione di una determinata sottostringa. Per verificare se una stringa inizia con una determinata sottostringa è possibile utilizzare il metodo startsWith(), così come il metodo endsWith() sarà in grado di dirci come termina. Il metodo indexOf() restituisce invece l’indice di una sottostringa, o -1 in caso che questa non sia presente.

String s = “Dott. Bianchi Roberto”;

int posNome = s.indexof(“Roberto”);

System.out.println(“Il nome inizia dalla posizione:” +posNome);

Buffer stringhe

Le stringhe in Java sono oggetti immutabili per cui ogni operazione svolta su di esse comporta la creazione di una nuova stringa, fenomeno per cui può determinarsi l’allocamento di una grande quantità di memoria. Una valida opzione é l’utilizzo degli array di caratteri che, in ragione della complessità di manipolazione, possono beneficiare di una libreria ad essi dedicata, la classe StringBuffer. Questa particolare classe si avvale di 3 tipologie di metodi:

  • il metodo append();
  • il metodo insert();
  • altri metodi di ricerca, inversione, estrazione e sostituzione.

Esempio di utilizzo dello StringBuffer:

//Creazione oggetto di classe StringBuffer
StringBuffer ciao = new StringBuffer(“Ciao”);

//Accodamento di una ulteriore stringa
ciao.append(“Pippo”);

//Inseriamo uno spazio
ciao.insert(4, “ “); //Out CiaoPippo
MetodoDescrizione
char charAt(int)Restituisce il carattere alla data posizione
stringBuffer delete (int, int)Elimina i caratteri nell’intervallo
int indexOf(String)Restituisce la posizione della sottostringa indicata
int lenght()Restituisce il numero di caratteri
stringBuffer replace(int, int, String)Sostituisce la sottostringa
stringBuffer reverse()inverte l’ordine dei caratteri
string substring(int, int)Restituisce la sottostringa individuata

Luca Scandroglio

Sono un consulente tecnico informatico, un web designer e uno sviluppatore italiano. Aiuto le aziende a dotarsi degli strumenti tecnologici e digitali per superare le sfide del mercato di oggi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *