1. Analizziamo in dettaglio il tipo String
Il tipo String è uno dei tipi più usati in Java. Forse il più usato in assoluto. È semplicemente un tipo eccellente, perché in tali variabili si può memorizzare testo. Inoltre, a differenza dei tipi int e double, gli oggetti di tipo String hanno un sacco di funzioni diverse, e con esse si possono fare molte cose interessanti.
Inoltre, tutti gli oggetti in Java (proprio tutti) possono essere convertiti al tipo String. O, per dirla in modo più corretto, tutti gli oggetti in Java restituiscono la loro rappresentazione testuale (stringa). Torneremo più volte su questo tipo (è davvero utile e interessante), ma oggi ci limiteremo alle basi.
Creazione di variabili di tipo String
Il tipo String è stato creato per memorizzare stringhe (testo). Per creare nel codice una variabile capace di memorizzare del testo, usa il comando:
String imya;
Dove imya è il nome della variabile.
Esempi:
| Comando | Descrizione |
|---|---|
|
Viene creata la variabile stringa name |
|
Viene creata la variabile stringa message |
|
Viene creata la variabile stringa text |
Così come con i tipi int e double, si può usare una forma breve per creare più variabili di tipo String:
String imya1, imya2, imya3;
2. Assegnazione di valori alle variabili di tipo String
Per assegnare un valore a una variabile di tipo String, usa il comando:
imya = "valore";
E qui troviamo la prima differenza rispetto ai tipi già studiati. Tutti i valori di tipo String sono stringhe di testo e devono essere racchiusi tra doppi apici.
Esempi:
| Comando | Nota |
|---|---|
|
La variabile name contiene il testo Anya |
|
La variabile city contiene il testo New York |
|
La variabile message contiene il testo Hello! |
3. Inizializzazione delle variabili di tipo String
Come per i tipi int e double, le variabili di tipo String possono essere inizializzate subito al momento della creazione. Questo, tra l’altro, si può fare con qualunque tipo in Java. Non lo ripeteremo più.
String imya1 = "valore1", imya2 = "valore2", imya3 = "valore3";
String name = "Anya", city = "New York", message = "Hello!";
Si possono modificare solo variabili con un valore
Il compilatore Java si lamenterà se dichiari una variabile senza assegnarle alcun valore e proverai a usarla.
Questo codice non funzionerà:
String name;
System.out.println(name); // La variabile name non è inizializzata. Il programma non verrà compilato.
int a;
a++; // La variabile a non è inizializzata. Il programma non verrà compilato.
double x;
double y = x; // La variabile x non è inizializzata. Il programma non verrà compilato.
4. Concatenazione — unire le stringhe
C’è una cosa molto interessante e semplice che si può fare con le stringhe in Java — si possono unire. Questa operazione si chiama concatenazione. Per ricordarla più facilmente — «Con-ca-te-na-zione» 😆. Spesso viene anche chiamata «unione di stringhe» o semplicemente «somma di stringhe».
Per unire due stringhe, si usa il segno +. È molto semplice:
"stringa1" + "stringa2"
Esempi:
| Comando | Nota |
|---|---|
|
name contiene la stringa AnyaAnya |
|
city contiene la stringa New YorkAnya |
|
message contiene la stringa Hello! Anya |
Naturalmente si possono sommare molte stringhe contemporaneamente, nonché sommare stringhe e variabili.
String name = "Anya"; // name contiene la stringa Anya
String city = "New York"; // city contiene la stringa New York
String message = "Hello!" + city + name + city; // message contiene la stringa Hello!New YorkAnyaNew York
5. Stringhe vuote
Nell’ultimo esempio si vede che il testo nella variabile message è poco leggibile, perché mancano gli spazi. Per inserire uno o più spazi, basta scriverli nel codice e racchiuderli tra doppi apici. È più semplice di quanto sembri:
" "
A proposito, se tra gli apici non si lascia alcuno spazio (si scrivono due doppi apici consecutivi), si ottiene la cosiddetta «stringa vuota»:
""
Da un lato c’è, ma dall’altro, quando la si stampa a schermo, non appare nulla. E quando la si unisce ad altre stringhe, non succede nulla. Una sorta di analogo dello zero, ma per le stringhe.
6. Escape dei caratteri speciali nelle stringhe
Sai già che le stringhe sono racchiuse tra doppi apici. Ma cosa fare se bisogna inserire apici all’interno della stringa? Se scriviamo i doppi apici nella stringa, il compilatore non li considererà come la fine della stringa?
Esatto. Li considererà. Perciò le virgolette all’interno del testo si sostituiscono con la coppia di caratteri \". E il codice apparirà così:
String quote = "Lui ha detto: \"Salve!\"";
System.out.println(quote); // Lui ha detto: "Salve!"
In realtà è un po’ più sottile. Il simbolo \ è considerato speciale (di controllo) all’interno delle stringhe. Con il suo aiuto si possono specificare vari «caratteri non stampabili» come il ritorno a capo, la tabulazione ecc. E per specificare il simbolo \ stesso, bisogna scriverlo due volte.
Ecco le 4 combinazioni più diffuse:
| Notazione | Significato |
|---|---|
| \n | A capo (newline) |
| \t | Tabulazione (indentazione) |
| \\ | Il carattere \ letterale |
| \" | Virgolette all’interno della stringa |
Esempio:
String multiline = "Riga 1\nRiga 2";
System.out.println(multiline);
Produrrà:
Riga 1
Riga 2
7. Metodi delle stringhe
Il tipo String ha metodi propri (chiamati anche funzioni). Sono numerosissimi e facilitano la vita ai programmatori. Oggi conoscerai alcuni dei più semplici. Esempio:
| Funzione | Descrizione | Esempio di risultato |
|---|---|---|
|
Lunghezza della stringa | |
|
In maiuscolo | |
|
In minuscolo | |
|
Rimuovere gli spazi iniziali e finali | |
Esempi di utilizzo dei metodi delle stringhe
Tutti questi metodi si invocano così: variabile.funzione(...).
Determinare la lunghezza di una stringa:
String name = "Andrey";
int length = name.length();
System.out.println(length); // 6, perché sono 6 lettere
Convertire una stringa in maiuscolo o minuscolo:
String original = "Ciao";
System.out.println(original.toUpperCase()); // CIAO
System.out.println(original.toLowerCase()); // ciao
Rimuovere gli spazi ai bordi (molto utile durante l’input da tastiera):
String messy = " hello ";
System.out.println(messy.trim()); // "hello"
Ciascuno di questi metodi restituisce una nuova stringa; la stringa originale non cambia.
GO TO FULL VERSION