Contenuti del Corso
Java Avanzato
Java Avanzato
Metodo Indexof()
Come trovare l'indice di un carattere specifico in una Stringa?
Per trovare l'indice della prima occorrenza di una lettera specifica, la classe String
fornisce il metodo indexOf()
. Questo metodo è sovraccaricato e presenta diverse implementazioni. Vediamo cosa fa ciascuna di esse:
indexOf(String str)
indexOf(String str)
- in questo metodo, il parametro specifica ciò che stiamo cercando. Può essere una singola lettera racchiusa tra doppi apici (""
), una sequenza di lettere o anche una parola. Questo metodo restituisce l'indice della prima occorrenza del parametro specificato nella stringa. Ad esempio, troviamo l'indice della lettera "l"
nella stringa "Hello"
:
Main.java
package com.example; // do not modify the code below this comment public class Main { public static void main(String[] args) { String hello = "Hello"; // find the index of the first appearance of the letter "l" int index = hello.indexOf("l"); // output the index of the first occurrence of "l" System.out.println("First appearance of the letter 'l' is on index " + index); } }
Nell'esempio sopra, abbiamo inizializzato la variabile index
utilizzando il metodo indexOf("l")
. Ora, questa variabile contiene l'indice della prima occorrenza della lettera "l"
nella stringa "Hello"
.
indexOf(String str, int fromIndex)
indexOf(String str, int fromIndex)
- il primo parametro è lo stesso di prima, specifica ciò che stiamo cercando.
Il secondo parametro determina l'indice di partenza da cui iniziare la ricerca. Ad esempio, nella parola "Hello"
ci sono 2 occorrenze della lettera "l"
, e vogliamo trovare l'indice della seconda occorrenza. Dal primo esempio sappiamo che la prima occorrenza si trova all'indice 2
, quindi impostiamo il parametro fromIndex
a 3 e troviamo l'indice della seconda "l"
:
Main.java
package com.example; // do not modify the code below this comment public class Main { public static void main(String[] args) { String hello = "Hello"; // find the index of the first appearance of the letter "l" int firstIndex = hello.indexOf("l"); // find the index of the second appearance of the letter "l", starting from the position after the first "l" int secondIndex = hello.indexOf("l", firstIndex + 1); // output the index of the second occurrence of "l" System.out.println("Second appearance of the letter 'l' is on index " + secondIndex); } }
Nell'esempio sopra, abbiamo adottato un approccio più pratico. Abbiamo utilizzato la posizione della prima occorrenza della lettera specificata per cercare la seconda lettera a partire dall'indice aumentato di 1. In questo modo, la ricerca inizia dall'indice successivo rispetto a quello della prima occorrenza della lettera o della sequenza di lettere desiderata.
Inoltre, i parametri String str
e int fromIndex
possono essere scambiati.
È anche importante notare che, se il metodo indexOf()
non trova la lettera o la sequenza di lettere specificata, restituirà il valore -1
. Ad esempio:
Main.java
package com.example; // do not modify the code below this comment public class Main { public static void main(String[] args) { String hello = "Hello"; // find the index of the letter "d" in the string int index = hello.indexOf("d"); // output the index, if the specified letter is not found, the value will be -1 System.out.println("Value of index, if it does not find a specified letter: " + index); } }
La ricerca della lettera "d"
nella stringa "Hello"
non ha prodotto alcun risultato e il metodo ha restituito -1
. Questo può essere utile per impostare condizioni o creare un punto di uscita da un ciclo.
Come trovare l'ultimo indice nella stringa
Anche String
dispone di un metodo che consente la ricerca dalla fine della stringa. Questo metodo si chiama lastIndexOf()
. Funziona secondo lo stesso principio. Consideriamo un esempio di ricerca dell'ultima occorrenza della lettera "l"
nella stringa "Hello"
:
Main.java
package com.example; // do not modify the code below this comment public class Main { public static void main(String[] args) { String hello = "Hello"; // find the last index of the letter "l" int lastIndex = hello.lastIndexOf("l"); // output the last index where the letter "l" appears System.out.println("Last index of the letter 'l' : " + lastIndex); } }
Qui abbiamo ottenuto il risultato 3
, che rappresenta l'indice dell'ultima occorrenza della lettera "l"
.
Grazie per i tuoi commenti!