Java: il metodo String split() nella pratica

Il metodo Java String split() è utile per suddividere le stringhe in varie sottostringhe. Durante questa operazione si specifica un parametro che agisce da separatore e uno (opzionale) che regola il numero di sottostringhe. Di seguito ti spieghiamo come funziona questo metodo e ti illustriamo alcuni aspetti da tenere in considerazione.

Cos’è il metodo Java String split()?

Una stringa Java è un oggetto che rappresenta più caratteri, numeri o caratteri speciali. Esiste nella classe java.lang e viene creata e modificata mediante la classe String. Con questo linguaggio di programmazione hai la possibilità di suddividere queste stringhe in più sottostringhe. Il metodo Java String split() si usa per estrarre determinate porzioni di un’intera stringa o per suddividerla in singole parti. Ti mostriamo le diverse opzioni a tua disposizione.

Usando il metodo Java String split() si ottiene un array composto da più stringhe. Questo viene definito valore di ritorno.

Il tuo web hosting come mai prima d'ora
  • Certificato SSL e protezione DDoS
  • Velocità, flessibilità e scalabilità
  • Dominio e consulente personale
  • 1 anno gratis del gestionale di fatturazione elettronica FlexTax

Sintassi e funzionamento del metodo

Sostanzialmente la sintassi del metodo Java String split() è molto semplice e, se necessario, può essere completata con un parametro. La variante di base è la seguente:

String[] split(String regex)
java

L’output ci mostra che il valore di ritorno è un array. String è l’oggetto della stringa. Il parametro regex è un input utilizzato per indicare i punti in cui la stringa dovrà essere suddivisa. I parametri non devono essere usati necessariamente, ma sono sempre consigliati. Con il parametro opzionale limit il codice avrà questa sintassi:

String[] split(String regex, int limit)
java

limit specifica quante sottostringhe andranno create. Il suo valore è un numero intero. Se questo è negativo o pari a zero, l’output visualizza tutte le sottostringhe. Se invece si sceglie un valore positivo, le sottostringhe visualizzate corrisponderanno a quel numero.

Esempio di metodo con spazi e trattini

Per capire meglio come funziona Java String split() vediamo da vicino un esempio pratico. A questo scopo, creiamo una stringa composta da quattro parole: “Questo è un esempio”. Ora usiamo il metodo split() per suddividere la stringa. Il modo più logico è quello di dividerla in base agli spazi tra una parola e l’altra. Per suddividere la stringa puoi usare il seguente codice:

public class Main {
	public static void main(String[] args) {
		String x = "Questo è un esempio";
		String[] risultato = x.split(" ");
		for (String y : risultato) {
			System.out.println(y);
		}
	}
}
java

A questo scopo viene iniziata solo una variabile di String x. Successivamente, Java usa il metodo String split() su x. Il parametro regex cerca gli spazi all’interno della stringa e la divide in quei punti. Il risultato viene quindi salvato in un array denominato “risultato”. Queste sottostringhe vengono eseguite con il ciclo for. Con l’aiuto del comando Java System.out.println si ottiene il seguente output:

Questo
è
un
esempio
java

Virgola come elemento di separazione: con e senza spazio

Puoi usare questo metodo anche per separare elenchi divisi da una virgola e salvati come stringa. Tuttavia, occorre adottare un piccolo accorgimento in grado di mostrare direttamente come vengono messe in pratica le istruzioni. Consideriamo un elenco dei giorni della settimana, ciascuno separato da virgole. Queste virgole rappresentano un buon parametro da utilizzare per regex. Usandolo, il codice si scrive così:

public class Main {
	public static void main(String[] args) {
		String x = "lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica";
		String[] risultato = x.split(",");
		for (String y : risultato) {
			System.out.println(y);
		}
	}
}
java

Ma in questo caso il risultato non sarà proprio ideale:

lunedì
 martedì
 mercoledì
 giovedì
 venerdì
 sabato
 domenica
java

Infatti, otteniamo un elenco ordinato, ma notiamo che tutti i valori da “martedì” in poi sono preceduti da uno spazio. Questo succede perché la divisione viene eseguita direttamente dopo la virgola corrispondente e Java String split() include lo spazio come prima posizione nella relativa sottostringa. È possibile risolvere questo piccolo problema semplicemente modificando il parametro, ovvero aggiungendo uno spazio supplementare come separatore. Lo snippet di codice sarà il seguente:

public class Main {
	public static void main(String[] args) {
		String x = "lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica";
		String[] risultato = x.split(", ");
		for (String y : risultato) {
			System.out.println(y);
		}
	}
}
java

Ora l’output risulta molto più ordinato:

lunedì
martedì
mercoledì
giovedì
venerdì
sabato
domenica
java

Suddividere le sequenze di numeri

Nel caso di lunghe sequenze di numeri esiste un altro modo per suddividere la stringa. In questo contesto immaginiamo una lunga sequenza di numeri divisa da punti e da due punti. Ora, se desideriamo elencare separatamente i numeri dopo i due punti, dovremo digitare il seguente snippet di codice:

public class Main {
	public static void main(String[] args) {
		String x = "194.518.552.1.17:6339";
		String[] risultato = x.split(":");
		for (String y : risultato) {
			System.out.println(y);
		}
	}
}
java

L’output sarà il seguente:

194.518.552.1.17
6339
java

Il metodo Java String split() con il parametro limit

Come già accennato, Java String split() conosce anche il parametro opzionale limit. Questo limita il numero di sottostringhe create con il metodo. In questo caso ci sono tre possibilità: un valore inferiore a 0, un valore uguale a 0 e un valore superiore a 0.

limit inferiore a 0

Se assegniamo al parametro limit un valore più piccolo di 0, l’espressione regolare sarà applicata su tutta la sequenza di caratteri. L’array che si crea può avere una lunghezza variabile. Questo il codice:

public class Main {
	public static void main(String[] args) {
		String x = "lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica ";
		String[] risultato = x.split(", ", -3);
		for (String y : risultato) {
			System.out.println(y);
		}
	}
}
java

Poiché dopo il termine “domenica” c’è ancora uno spazio, in questo caso l’array termina con una stringa vuota. Questo l’output:

lunedì
martedì
mercoledì
giovedì
venerdì
sabato
domenica
java

limit 0

Assegnando il valore 0 al parametro limit, l’espressione regolare viene ripetuta continuativamente. Neanche la lunghezza dell’array è limitata. Se l’ultimo elemento corrisponde a una stringa vuota, questa non viene tenuta in considerazione per l’array finale.

public class Main {
	public static void main(String[] args) {
		String x = "lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica ";
		String[] risultato = x.split(", ", 0);
		for (String y : risultato) {
			System.out.println(y);
		}
	}
}
java

L’output è identico, ma l’ultima stringa viene eliminata;

lunedì
martedì
mercoledì
giovedì
venerdì
sabato
domenica
java

limit superiore a 0

Il risultato è molto differente se assegniamo a limit un valore superiore a 0. Questo determina il numero di sottostringhe dell’output. Nel nostro esempio, il codice è il seguente:

public class Main {
	public static void main(String[] args) {
		String x = "lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica ";
		String[] risultato = x.split(", ", 3);
		for (String y : risultato) {
			System.out.println(y);
		}
	}
}
java

In questo caso l’output è chiaramente diverso rispetto ai due esempi precedenti:

lunedì
martedì
mercoledì, giovedì, venerdì, sabato, domenica
java
Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top