Il metodo substring() di java si trova nella classe String e ritorna una nuova stringa composta da una sottostringa di quella di partenza. Il metodo substring() è “overloaded”, si può cioè trovare in più varianti, in questo caso 2:
- String substring(int beginningIndex)
- String substring(int beginningIndex, int endIndex)
Dove i due argomenti significano:
- beginIndex – l’indice di partenza, che verrà incluso nella nuova stringa.
- endIndex – l’indice di fine, che verrà in questo caso escluso dalla nuova stringa.
Da notare che il primo indice è inclusivo mentre il secondo è esclusivo.
Vediamo un po’ di esempi pratici su come utilizzare questi 2 metodi:
1. Java String substring(int beginIndex) – esempio
Questo metodo ritorna una nuova stringa, che sarà composta da tutti i caratteri della stringa di partenza a partire dal “beginIndex” incluso in poi.
Ricordiamoci sempre che l’indice delle stringhe è “zero-based”, inizia cioè da 0 che indica il primo carattere della Stringa.
Questo metodo lancerà una StringOutOfBoundException
se beginIndex non è un indice valido per la stringa. Un indice valido è maggiore o uguale a 0 e minore o uguale della lunghezza della stringa. Con 0 avremo una copia della stringa di partenza, con stringa.length() avremo una stringa vuota.
0 >= indice valido <= lunghezza stringa
Esempio di programma per generare la substring specificando l’indice di partenza.
public class StringExample{
public static void main(String[] args){
String nomeBlog = "informaticappunti.it";
System.out.println(nomeBlog.substring(10)); //appunti.it
System.out.println("hello world".substring(6)); //world
}
}
Avremo come output:
appunti.it
world
2. Java String substring(int beginIndex, int endIndex) – esempio
Questo metodo ritorna una nuova stringa, che sarà composta da tutti i caratteri della stringa di partenza a partire dal “beginIndex” incluso fino al carattere all’indice “endIndex” escluso.
Ricordiamoci sempre che l’indice delle stringhe è “zero-based”, inizia cioè da 0 che indica il primo carattere della Stringa.
Questo metodo lancerà una StringOutOfBoundException
se almeno uno fra beginIndex e endIndex non è un indice valido per la stringa. In questo caso abbiamo qualche condizione in più sulla validità degli indici. beginIndex deve essere maggiore o uguale a 0, endIndex deve essere minore o uguale alla lunghezza della stringa e beginIndex deve essere minore o uguale di endIndex.
0 <= beginIndex <= endIndex <= lunghezza stringa
Esempio di programma per generare la substring specificando l’indice di inizio e quello di fine.
Java program to get substring of a string from given start index to end index.
public class StringExample{
public static void main(String[] args){
String nomeBlog = "informaticappunti.it";
System.out.println(nomeBlog.substring(10, 17)); //appunti
String helloWorld = "hello world";
System.out.println(helloWorld.substring(6, helloworld.length())); //world
}
}
Avremo come output:
appunti
world
Per ulteriori approfondimenti: