Java: Un’introduzione alle stringhe

Una stringa

di base è un array di caratteri. Le stringhe sono usate in quasi tutti i linguaggi di programmazione. Il linguaggio di programmazione Java fornisce una classe wrapper String che è utile per creare e manipolare le stringhe.

  • Creazione di stringhe
  • Cosa puoi fare con le stringhe
  • Modificare le stringhe

Creazione di stringhe

Il modo più semplice per creare una stringa è usare la seguente sintassi:

Stringa hello = "Hello World!";

"Hello World!" è una stringa letterale che viene assegnata alla variabile quote. Questa linea di codice equivale a creare un array di caratteri e chiamare il costruttore di stringhe con esso:

char[] hello = { 'H', 'e', 'l', 'l', 'o', '', 'W' , 'o', 'r', 'l', 'd', '!'};

String helloString = new String(hello);

In effetti, ogni volta che il compilatore legge un letterale di stringa racchiuso tra virgolette nel vostro codice, automaticamente crea un oggetto String per quella sequenza di caratteri.

Stringa concatenata = "ABC" + "DEF"; //"ABCDEF"

Questo significa che l'affermazione sopra risulterà in tre oggetti Stringa creati. Le due stringhe che sono usate per creare il concatenato saranno scartate immediatamente però.

Si prega di tenere a mente: Anche se la classe String è un wrapper per l'array di caratteri sottostante, non è possibile accedervi direttamente con nessun mezzo. Le stringhe sono immutabili. Ciò significa che non si può cambiare direttamente un oggetto String. hello e concatenated in questo caso sono solo riferimenti a oggetti String da qualche parte nella memoria. Così, potete cambiarle come qualsiasi altra variabile. Ma ogni volta che si modifica il contenuto di una stringa di riferimento, viene creata una nuova stringa con il contenuto desiderato. Questo può causare qualche problema quando si vuole modificare una stringa molto spesso, il che potrebbe essere il caso se si vogliono concatenare molte stringhe insieme. In questi casi, si può considerare l'utilizzo di un StringBuilder per aumentare le prestazioni

Cosa si può fare con le stringhe

Come forse già sapete, potete stampare una stringa alla console utilizzando i metodi di stampa standard come println.

Stringa hello = "Hello World!";
System.out.println(hello)

Spesso è importante sapere quanti caratteri contiene la stringa - o in altre parole - per determinare la lunghezza della stringa. Questo può essere ottenuto con il metodo length.

Stringa hello = "Ciao mondo!";
int length = hello.length(); //Assegna 12 a length

Poiché le nostre variabili stringa sono solo riferimenti, non possono essere confrontate con operatori logici come == o !=. Invece, potete usare funzioni predefinite dalla classe String.

Stringa s1 = "Ciao";
Stringa s2 = "CIAO";

s1.equals(s2); // false
s1.equalsIgnoreCase(s2); // true
s1.compareTo(s2); // > 0 perché 'e' viene dopo 'E'

La funzione equals confronta le due stringhe e restituisce un valore booleano se le stringhe sono uguali o no. equalsIgnoreCase può essere usato se la capitalizzazione delle due stringhe non ha importanza. compareTo può essere usato non solo per controllare se due stringhe sono uguali ma anche per ordinarle lexicograficamente. La funzione restituirà 0 se entrambe le stringhe sono uguali, un intero negativo se la prima stringa è "più piccola" e un intero positivo se la stringa è "maggiore".

Modificare le stringhe

Le stringhe hanno alcuni metodi predefiniti per modificarle. Tenete a mente però che ogni volta che queste funzioni sono chiamate, viene creata una nuova stringa che deve essere assegnata a una variabile.

Stringa s1 = "Ciao";
Stringa s2;
s2 = s1.toLowerCase(); // "ciao"
s2 = s1.String toUpperCase(); // "HELLO"
s2 = s1.String trim(); // "Hello" (rimuove gli spazi bianchi iniziali e finali)
s2 = s1.String replace('e', 'a'); // "Hello"
char[] charArray = s1.toCharArray(); // crea un array di char da s1

Se scegliete di creare un array di char dalla String, potete eseguire qualsiasi modifica su di esso e metterlo in un nuovo oggetto String. Questo è il metodo più semplice per fare una modifica personalizzata a una stringa.