Le Stringhe In Java

Indice Tutorial

Le stringhe in java sono rappresentate come degli oggetti della classe String; possono perciò essere create tramite l’operatore new.

String s = new String("Hello");

Esiste anche un modo alternativo  per crearle (in questo caso sono dette stringhe letterali):

String s = "Hello";

La differenza principale è che, nel caso di new, viene creato un nuovo oggetto in memoria, invece, con la forma letterale, viene prima controllato se esiste già una stringa simile in una speciale area di memoria dedicata alle stringhe (String Pool); se esiste si ritorna un riferimento ad essa altrimenti si crea nuova e la si mette sempre nel string pool.

Esempio:

Str1 e str2 puntano alla stessa stringa in memoria (nello string pool).

Str3 invece, nonostante il contenuto della stringa sia uguale (abc) punta ad un’altra locazione di memoria.

Di conseguenza str1== str2 è vera; mentre str1== str3 è falsa.

L’uso delle stringhe letterali è da preferire, in quanto ottimizzano l’uso della memoria.

La caratteristica di usare lo string pool, non avviene solo alla creazione di una stringa, ma anche alla modifica: ogni volta che si tenta di modificare una stringa non si modifica effettivamente la variabile ma si crea una stringa nuova, o la si prende dal string pool.

Questa caratteristica delle stringhe è nota come immutabilità delle stringhe.

Esempio:

creiamo una stringa

String a = "abc";

e, subito dopo:

  a = "World";

 L’ultima istruzione modificata l’oggetto originario, che conteneva la stringa “abc”, ma crea una nuova stringa inizializzata con  la stringa “World”. La vecchia stringa “abc” è rimasta in memoria intatta, senza nessuna modifica.

Anche l’assenza di metodi set, nelle stringhe, mette in evidenza la loro immutabilità.

Esempio Metodi Più Usati

		String tmp = "HelloWorld";
		
		int size = tmp.length();// Lunghezza stringa
		System.out.println(size);
		
		String min = tmp.toLowerCase();// trasforma tutto in minuscolo
		System.out.println(min);
		
		String max = tmp.toUpperCase();// trasforma tutto in maiuscolo
		System.out.println(max);
		
		String tmp2 = "Hello" + " World";// unione di stringhe
		String tmp3 = "Hello " + tmp;
		
		String r = tmp2.replace("H", "T");// sostituzione di caratteri
		
		int p = tmp2.indexOf("W");// posizione di un carattere specifico
		
		
		
		String t  = tmp.substring(0,5);// sotto stringa HELLO
		String t2 = tmp.substring(5,10);// sotto stringa "WORLD"
		System.out.println(t);
		System.out.println(t2);

Video Lezione – Le Stringhe in Java

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.