# Java String substring(): varianti e funzionamento del metodo

Il metodo substring in Java serve a estrarre una sottostringa da una stringa intera. Vi sono diverse varianti per farlo: è possibile separare la stringa partendo da un indice definito sino alla fine della stringa oppure stabilire da subito l’inizio e la fine della sottostringa.

## Che cos’è il metodo `substring` in Java e come funziona?

In Java è possibile riunire più lettere, cifre o caratteri speciali in un’unica [stringa Java](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/java-string/). Se desideri estrarre soltanto certe sottosezioni dell’intera stringa, hai diverse opzioni a tua disposizione. Con il metodo [Java String.split()](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/java-string-split/) puoi scomporre l’intera stringa nelle sue singole parti per ottenere ad esempio una visualizzazione più chiara. Il metodo Java String substring(), invece, si spinge un po’ oltre e restituisce solamente una parte della stringa, che puoi **definire per mezzo di un indice iniziale o, in alternativa, con un indice iniziale e uno finale**. Ti mostriamo ora il metodo e le sue varianti.

## `Substring` con `beginIndex`

Come già menzionato nella nostra introduzione, per il metodo Java `String substring()` esistono due varianti che si differenziano per alcuni aspetti. La prima variante **definisce soltanto un punto iniziale** a partire dal quale deve essere formata la sottostringa. La separazione parte da questo punto e va fino all’ultimo carattere della stringa. La sintassi si presenta così:

```java
String substring(int beginIndex)
```

Qui indichiamo innanzitutto la stringa dalla quale estrarre la sottostringa. Quindi utilizziamo un valore integer per definire il punto da cui parte la sottostringa. Per ottenere l’output si utilizza il [comando Java](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/comandi-java/) `System.out.println`. Il metodo **funziona con principio inclusivo**, ossia anche il carattere corrispondente al punto dell’indice viene incluso nella separazione. Se il valore beginIndex è minore di 0 o supera l’effettiva lunghezza della stringa, compare un messaggio di errore.

Per chiarire il funzionamento di questo metodo substring in Java ti mostriamo un semplice esempio in cui creiamo una stringa e quindi ne estraiamo una sottostringa in un certo punto.

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("Questo è un esempio. Qui segue una seconda frase.");
	System.out.print("Questa è la nuova sottostringa: ");
	System.out.println(Str.substring(21));
	}
}
```

Eseguendo il codice, ottieni il seguente output:

```java
Questa è la nuova sottostringa: Qui segue una seconda frase.
```

Naturalmente il tutto funziona anche se la stringa è composta da cifre:

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("192.448.782.1142");
	System.out.print("Le ultime quattro cifre sono: ");
	System.out.println(Str.substring(12));
	}
}
```

Questo è l’output:

```java
Le ultime quattro cifre sono: 1142
```

## `Substring` con `beginIndex` ed `endIndex`

Con la seconda variante del metodo substring di Java è possibile personalizzare ulteriormente la sottostringa in base alle tue esigenze. In questo caso, infatti, non indichiamo soltanto il punto a partire dal quale estrarre la sottostringa, ma definiamo **anche un punto finale**. La sintassi è la seguente:

```java
String substring(int beginIndex, int endIndex)
```

L’indice beginIndex è inclusivo, mentre l’indice endIndex è esclusivo. Utilizziamo un semplice esempio per chiarire anche questa variante:

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("Questo è un esempio. Qui segue una seconda frase.");
	System.out.print("Questa è la nuova sottostringa: ");
	System.out.println(Str.substring(9, 19));
	}
}
```

In questo modo otteniamo il seguente output:

```java
Questa è la nuova sottostringa: un esempio
```

È anche possibile creare facilmente una sottostringa all’interno di una parola. Ad esempio, estraiamo una parte di questa lista di una spesa immaginaria:

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("Uova, latte, fagioli, speck e farina");
	System.out.print("Questa è la nuova sottostringa: ");
	System.out.println(Str.substring(13, 15));
	}
}
```

Il nuovo output si presenta quindi così:

```java
Questa è la nuova sottostringa: fa
```

Per concludere ti proponiamo un ulteriore esempio con una possibile applicazione pratica del metodo Java substring. A tal fine immaginiamo di aver ricevuto i dati di contatto di un cliente in un dato formato. Se ora desideri isolare soltanto la parte che ti interessa, questo metodo è la soluzione migliore per farlo. Creiamo il seguente codice:

```java
public class Main {
	public static void main(String args[]) {
	String Str = new String("247: Bianchi, Mario|bianchim@esempio.com|Milano|12.04.1972");
	System.out.print("Questo è l'indirizzo e-mail del cliente: ");
	System.out.println(Str.substring(20, 40));
	}
}
```

L’output si presenta quindi così:

```java
Questo è l'indirizzo e-mail del cliente: bianchim@esempio.com
```


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/java-string-substring/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/java-string-substring/) for AI/LLM consumption.