Introduzione agli Oggetti Stringa in Java
- La classe
String
in Java rappresenta una sequenza di caratteri ed è immutabile. - Le stringhe possono essere create usando le virgolette doppie o il costruttore
new String()
. - La concatenazione di stringhe può essere effettuata con l'operatore
+
. - La classe
String
fornisce vari metodi utili comeequals()
,length()
, echarAt()
. - Gli array di stringhe sono possibili e possono essere utilizzati per gestire collezioni di stringhe.
La classe String
Anche se la classe String
sarà esaminata in profondità nelle lezioni successive, è opportuno darne una breve esplorazione ora, poiché verranno usate stringhe in alcuni dei programmi di esempio mostrati più avanti.
String
è probabilmente la classe più comunemente usata nella libreria delle classi di Java. Il motivo ovvio di ciò è che le stringhe sono una parte molto importante della programmazione.
La prima cosa da comprendere sulle stringhe è che ogni stringa creata è in realtà un oggetto di tipo String
. Anche le costanti stringa sono effettivamente oggetti String
. Ad esempio, nell'istruzione
System.out.println("Questa è una String");
la stringa "Questa è una String"
è un oggetto String
.
La seconda cosa da comprendere sulle stringhe è che gli oggetti di tipo String
sono immutabili; una volta che un oggetto String
è stato creato, il suo contenuto non può essere alterato. Anche se questo può sembrare una seria limitazione, non lo è, per due motivi:
- Se occorre modificare una stringa, si può sempre crearne una nuova che contenga le modifiche.
- Java definisce classi peer di
String
, chiamateStringBuffer
eStringBuilder
, che permettono di alterare le stringhe, quindi tutte le normali manipolazioni delle stringhe sono comunque disponibili in Java. (StringBuffer
eStringBuilder
sono descritti nella Parte II di questo libro.)
Creazione di Stringhe
Le stringhe possono essere costruite in diversi modi. Il più semplice è usare un'istruzione come questa:
String miaStringa = "questa è una prova";
Una volta creato un oggetto String
, lo si può usare ovunque sia consentito l'uso di una stringa. Ad esempio, questa istruzione visualizza miaStringa
:
System.out.println(miaStringa);
Java definisce un operatore per gli oggetti String
: +
. Esso viene usato per concatenare due stringhe. Ad esempio, questa istruzione
String miaStringa = "Mi " + " piace " + "Java.";
fa sì che miaStringa
contenga "Mi piace Java."
.
Il programma seguente dimostra i concetti precedenti:
// Dimostrazione delle stringhe.
class DimostrazioneStringa {
public static void main(String[] argomenti) {
String strObj1 = "Prima Stringa";
String strObj2 = "Seconda Stringa";
String strObj3 = strObj1 + " e " + strObj2;
System.out.println(strObj1);
System.out.println(strObj2);
System.out.println(strObj3);
}
}
L'output prodotto da questo programma è mostrato qui:
Prima Stringa
Seconda Stringa
Prima Stringa e Seconda Stringa
Metodi della Classe String
La classe String
contiene diversi metodi che possono essere usati. Eccone alcuni:
- È possibile verificare se due stringhe sono uguali utilizzando
equals()
. - È possibile ottenere la lunghezza di una stringa chiamando il metodo
length()
. - Si può ottenere il carattere a uno specifico indice all'interno di una stringa chiamando
charAt()
.
Le forme generali di questi tre metodi sono le seguenti:
boolean equals(secondaStr)
int length()
char charAt(indice)
Ecco un programma che dimostra questi metodi:
// Dimostrazione di alcuni metodi String.
class DimostrazioneStringa2 {
public static void main(String[] argomenti) {
String strObj1 = "Prima Stringa";
String strObj2 = "Seconda Stringa";
String strObj3 = strObj1;
System.out.println("Lunghezza di strObj1: " + strObj1.length());
System.out.println("Carattere all'indice 3 in strObj1: " +
strObj1.charAt(3));
if(strObj1.equals(strObj2))
System.out.println("strObj1 == strObj2");
else
System.out.println("strObj1 != strObj2");
if(strObj1.equals(strObj3))
System.out.println("strObj1 == strObj3");
else
System.out.println("strObj1 != strObj3");
}
}
Questo programma genera il seguente output:
Lunghezza di strObj1: 12
Carattere all'indice 3 in strObj1: s
strObj1 != strObj2
strObj1 == strObj3
Array di Stringhe
Naturalmente, è possibile avere array di stringhe, proprio come è possibile avere array di qualsiasi altro tipo di oggetto. Ad esempio:
// Dimostrazione degli array di Stringhe.
class DimostrazioneStringa3 {
public static void main(String[] argomenti) {
String[] str = { "uno", "due", "tre" };
for(int i = 0; i < str.length; i++)
System.out.println("str[" + i + "]: " +
str[i]);
}
}
Ecco l'output di questo programma:
str[0]: uno
str[1]: due
str[2]: tre
Come si vedrà nella prossima lezione, gli array di stringhe svolgono un ruolo importante in molti programmi Java.